symbian 学习总结

symbian 学习总结

ID:37315765

大小:78.50 KB

页数:8页

时间:2019-05-21

symbian 学习总结_第1页
symbian 学习总结_第2页
symbian 学习总结_第3页
symbian 学习总结_第4页
symbian 学习总结_第5页
资源描述:

《symbian 学习总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、symbian学习总结-2005-05-30,12:47看了不少同仁把自己的体会写出来都会放到论坛供大家讨论,我也有这样的想法。接触symbian有一个月了,现在事情不是很多,自己把用到的看到的稍微梳理一下,作为复习和总结只用。发到这里不是为了指导别人,是想让别人指导。有错误的地方希望大家提出来,共同提高。我想写几个部分的东西,这是自己接触到的:*字符串descriptors(不包括literal);*文件file、stream、store等;*图形绘制display(color,font,bitmap)*用户界面ui(

2、framework,control,resource)*通讯communication(sms,mms,bt,ir,tcp/ip)今天贴上字符串部分,一些内容参考了《SymbianOSExplained?_?_EffectiveC++ProgrammingforSmartphones》symbian的字符串考虑到效率,symbian提供了好几个类来处理字符串。在symbian中,字符串被叫做描述符。CDesC*所有描述符都从CDesC继承,CDesC以C结尾,可以看出这是一个“常量类”,提供了一些不改变对象的操作;*在C

3、DesC中提供了Length、Ptr等这样的方法,与你想象的不同,这些方法不是虚函数,而是在CDesC中硬性编码实现的;*所有字符串对象的开始4个字节都表示相同的含义,前4位用来表示字符串的类型,后28位表示字符串的长度;*这样一来,CDesC就可以实现Length函数,然后根据字符串不同类型,返回不同的指向字符数据的指针,从而实现Ptr;*这样的设计,使得symbian描述符类型局限在16个,不过这已綺足够了;*这样的设计,也使得描述符避免了使用虚函数带来的开销,每个字符串对象少了一个指向虚函数表的指针。CDes*CD

4、es是所有“可修改类”字符串的基类,这个类本身也是从CDesC继承而来,在CDesC的基础上,它提供了一系列修改字符串的操作;*在内存结构上,所有从CDes继承的类,在type和length占据的4个字节之后,多了一个maxlength,也占了4个字节;*可以对CDes的对象进行各种修改字符串的操作,但是字符串的长度不能超过规定的maxlength,如果超过了这个长度,会产生一个panic;*糟糕的是,CDes并不提供ReAlloc这样的方法,来改变maxlength,因为如果那么做,symbian的字符串就得自己管理内

5、存,要考虑的更复杂的构造和清除问题;*这与设计描述符的初衷背离了,描述符的设计是为了效率和简单。所以,程序员需要自己管理内存;*CDesC和CDes提供了所有常用的操作字符串的函数,那些子类们,只是负责构建自己,和销毁自己,比如实现构造函数,拷贝构造函数,=符号等。PointerDescriptorsTPtrC、TPtr*这两种字符串,他们的字符数据不属于他们自己,这两个类的对象,都包含一个指针,这个指针指向字符数据;*至于这个字符数据存储在什么地方,他们不关心;*TPtrC对象,包含一个type+length共4个字节

6、,加一个指针4个字节,一共8个字节;*TPtr对象,在指针前多了一个maxlength;TPtrC*TPtrC从CDesC继承,一些常用字符串操作都在CDesC中实现了,TPtrC自己只是提供了一些构造对象的方法,你可以根据很多种类型的对象构造TPtrC。*TPtrC有个Set方法,你可以改变字符指针指向的地方,虽然你不可以改变数据。如果你想组织这样的操作,就把TPtrC声明为const。举例:构造TPtrC的方式_LIT(KLiteralDes,"fuckthedescriptorsofsymbian");TPtrCp

7、angramPtr(KLiteralDes);TPtrCcopyPtr(pangramPtr);TBufC<100>constBuffer(KLiteralDes);TPtrCptr(constBuffer);//fromzero-terminatedstringconstTText8*cString=(TText8*)"whosaysymbian'ssimple?";TPtrC8anotherPtr(cString);TUint8*validmemLocation;Tintvalidlength;TPtrC8memPt

8、r(validmemLocation,validlength);TPtr*TPtr从CDes继承,与TPtrC类似,它也只是提供了一些构造和删除的操作。*TPtr可以用来修改那些以C结尾的描述符的数据,比如TBufC,HBufC。*TPtr也有个Set方法,你可以改变字符指针指向的地方,但是需要注意,Set使得指针指

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。