Symbian学习笔记1Symbian学习笔记(1):DebugOnDevice...............................................................................2Symbian学习笔记(2):基本概念............................................................................................6Symbian学习笔记(3):应用程序框架..................................................................................11Symbian学习笔记(4):在GUI应用中使用图像...................................................................14Symbian学习笔记(5):加载JPEG图像的方法.....................................................................17Symbian学习笔记(6):关于多线程与活动对象..................................................................18Symbian学习笔记(7):定时器..............................................................................................20Symbian学习笔记(8):再尝试着做一个数独游戏..............................................................22Symbian学习笔记(9):数组..................................................................................................25Symbian学习笔记(10):使用ListBox...................................................................................30Symbian学习笔记(11):初识SettingItemList.......................................................................33Symbian学习笔记(12):在StatusPane中加上TabGroup......................................................36Symbian学习笔记(13):让程序随系统启动的尝试............................................................38Symbian学习笔记(14):使用BrowserControlAPI..............................................................39Symbian学习笔记(15)-解析XML文件(上)........................................................................43Symbian学习笔记(16)-解析XML文件(下)........................................................................45Symbian学习笔记(17)-初探WebServicesAPI的使用(上).................................................49Symbian学习笔记(18)-初探WebServicesAPI的使用(中)..............................................54Symbian学习笔记(19)-初探WebServicesAPI的使用(下)..............................................58Symbian学习笔记(20)-用gSOAP更简单地实现WebServicesClient...............................59Symbian学习笔记(21)-原来还有这个工具wsdl2cpp,访问webservice也很简单...........62Symbian学习笔记(22)-关于皮肤的小结............................................................................64Symbian学习笔记2Symbian学习笔记(1):DebugOnDevice在BREW的开发环境中,没有一个联机调试工具,一直是我觉得相当不方便的事情。在S60平台上做开发,至少这一点是能满足我们的需要。第一种方法:CarbideC++v1.2的DebugOnDeviceCarbideC++1.2的pro.以上版本都支持设备调试,实在是一件大快人心的事。要实现这个功能,也是相当的方便,当然前提是你用的是CarbideC++v1.2的Pro.以上版本。按正常模式写程序,在模拟器上都弄的差不多了,想放到设备中调试的话,只需要做下面几步:1、先在设备中安装一个软件,安装包在carbide的安装目录下,我机器上的位置是C:\Nokia\Carbide.c++v1.2\plugins\com.nokia.carbide.trk.support_1.2.0.29\trk\s60,下面有两个sis文件,因为我要在N73上调试,所以我选择其中的s60_3_0_app_trk_2_7.sisx这个,另一个3_1是用于3rd.FP1手机的。安装后在手机里就有一个TRK应用了。2、安装成功后,在手机上启动这个服务TRK,因为我是用的USB线,所以点选项,改成USB,端口是1(这里比较奇怪,明明我的端口应该是COM6)。启动后窗口显示:Status:Connected.3、在CarbideC++中,配置一下编译输出目标为PhoneDebug(GCCE),这个很重要,只有DEBUG才行。编译出SISX文件。4、打开DEBUG窗口(即debug...),在配置中的第一项“SymbianOSAppTrk“下建立一个新项。几个窗口的输入如下图所示:Symbian学习笔记3Symbian学习笔记45、点Apply,然后Debug,就可以启动调试。余下的事情与在模拟器中调试就一样了,没啥好说了。第二种方法:利用S60SDK自带的Ecmt工具进行DEBUG如果我们用的是CarbideC++的Express版(免费版本)的话,我们没办法做设备联机调试,但是可Symbian学习笔记5以用SDK中的工具在程序中将调试信息打印到控制台上。在BREW平台上主要就是依靠这种方式。Symbian提供了一个REmct可以用于远程调试,并且它还提供了两个配套工具:手机端的ecmtagent_cpp.sis和PC端的DeviceConnection。这种方式比前一种要稍复杂一点了,因为涉及到代码的修改。1、首先同样是在手机上安装一个软件ecmtagent_cpp.sis(不过3rd.的SDK下这个东西不能用,说签名过期之类的错误,只能安装3rd.FP1的SDK下的那个同名sis,唉,也不知道Nokia是咋回事)。2、同样在调试前也是要启动手机上的ecmtagent代理,设置成USB连接(不需要选择端口了)。然后看到窗口上显示listening。3、在PC上启动那个DeviceConnection,选择COM6去connect它,状态成为connected。这时发现手机上也显示connected。表明连接成功了。在DeviceConnection中打开那个Diagnostics工具,所有的调试信息的就是输出到它的窗口里。4、昀麻烦的是需要修改代码。A)修改mmp,加上这个lib。即:LIBRARYEcmtClient.libB)在要输出调试信息的那个类的h文件中加上:#ifdef_DEBUG#includeEcmtClient.h#endif......classCDemoUIAppView:publicCCoeControl,MBeating{......private:#ifdef_DEBUGREcmtiEcmt;#endifC)然后在cpp中加上一个初始化与销毁。voidCDemoUIAppView::ConstructL(constTRect&aRect){CreateWindowL();......#ifdef_DEBUGiEcmt.Connect();#endifSymbian学习笔记6}CDemoUIAppView::~CDemoUIAppView(){......#ifdef_DEBUGiEcmt.Close();#endif}D)然后就是在需要输出的地方这样一下:voidCDemoUIAppView::Beat(){this-total++;if(this-total100){this-total=0;iHeart-Cancel();}TBuf16buf;buf.Format(KMsgFormat,this-total);iLabel-SetTextL(buf);DrawNow();#ifdef_DEBUGiEcmt.WriteFormat(KFormattedText,this-total);#endif}5、编译程序,同样是GCCE下的PhoneDebug,自己手工安装到手机里,执行它就可以了。要注意的一点是,因为此时前面的那个ecmtagent正在运行,需要将它切到后台去(不是关闭啊!!!)。在Diagnostics的窗口中就会看到输出的调试信息了。昀后要补充一点的是,我在尝试这两种调试方法的时候,经常遇到打开端口失败或者连接失败的情况,一般重启一下手机就正常了,不知道是BUG呢还是因为我同时弄了两个代理在手机里照成的冲突,如果你在使用过程中发现不顺了,不妨也重启一下手机吧。Symbian学习笔记(2):基本概念Symbian学习笔记7第一次打开SymbianC++的程序源代码,第一感觉就是“这是C/C++吗?咋这么眼生啊”。看代码看书,才算是稍稍明白了一点,其实无非就是typedef罢了,symbian可比brew定义了更多的东西。这是以后干活的基础,所以做个笔记,省得忘了。一、基本数据类型这个比较简单,都在e32def.h中写着呢。也就是以下这几个类型要注意一下,以后照着写罢了,含义也很明了,不用多说。typedefvoidTAny;typedefsignedcharTInt8;typedefunsignedcharTUint8;typedefshortintTInt16;typedefunsignedshortintTUint16;typedeflongintTInt32;typedefunsignedlongintTUint32;typedefsignedintTInt;typedefunsignedintTUint;typedeffloatTReal32;typedefdoubleTReal64;typedefdoubleTReal;typedefunsignedcharTText8;typedefunsignedshortintTText16;typedefintTBool;typedefTUint32