欢迎来到天天文库
浏览记录
ID:34470172
大小:278.71 KB
页数:4页
时间:2019-03-06
《解析symbian操作系统内存管理机制new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、万方数据SOFTWAREDEVELOPMENTANDDESIGN软件开发与设计解析Symbian操作系统内存管理机制杨金良(天津工业大学,天津300160)摘要:Symbian操作系统中,使用TRAP机制捕获系统异常,控制内存分配过程。清除栈结构可以保证当发生异常产生的情况下,系统不会出现内存泄露。对自定义类型的两段构造方法,可以修改C++默认的构造规则,保证内存安全。关键词:Symbian操作系统;内存管理;内存泄露SymbitmOSMemoryManagementMechanismYANGJ'
2、mlia坞(TianjinPolytechnicUniversity,Tianjin300160)Abstract:SymbianoperatingsystemUSeStheTRAPmechanismtocapturesystemexceptionsandcontrolmemoryallocationprocess.Incaseofsystemexception,thecleanupstuckstructurecanensurethesystemmemoryleakdoesnotoccur.Thr
3、oushtwostepsconstructor,programmerscanmodifytheC++defaultconstructorrulestoensurethememor),safety.Keywords:SymbianOS;memorymanagement;memoryleakSymbianOS是目前最流行的嵌入式智能手机操作平台。Symbian提供了灵活的用户界面,适应不同的用户需求。目前基于Symbian的用户界面有很多,主要是Series60/80/90以及UIQ,Series系列
4、由Nokia公司研制和开发,占据接近半数的智能手机市场;UIQ则受到索尼一爱立信公司的支持和应用。Symbian操作系统的主要特点有:提供无线通信服务,将计算技术与电话技术相结合;操作系统固化;强大的开放性;低功耗,高处理性能;系统运行的安全、稳定性。从平台开发的角度,Symbian支持多种面向对象的编程语言。其中,以Java和C++为典型代表,前者注重于界面表示型应用,如手机游戏,依靠Java的跨平台优势,减少开发过程中的适配成本;而基于C++的Symbian应用通过API触及Symbian系统
5、的内核,充分发挥其系统特性。作为典型的嵌入式系统,Symbian的运行环境中,不具有类似PC机的系统资源,所以Symbian系统的内存管理机制较标准的C++更为严格。主要是讨论SymbianC++开发过程中,内存管理机制的实现和注意事项。lTRAP与异常处理应用程序中的对象,可以物理存储于系统的栈区或堆区。栈区中的对象,在其生命周期结束时会自动被系统回收,而堆区内的对象,需要程序员人为的控制器生命周期。图1中,CCI酗s的对象通过运算符new被分配于系统的堆区,一旦遗漏了内存释放语句deletee
6、ls,则会产生内存泄露。频繁的内存泄露会造成Symbian系统无内存可用的窘境。此时,若再次动态申请内存,则会产生内错不足的异常。Symbian操作系统,使用TRAP机制,来捕获异常。图2中的示例代码给出了TRAP的使用方法:使用动态内存分配操作符Hew时,在后边加入ELeave标识符,一旦无法分配内本文收稿日期:20lO—02一18存,则会产生异常;在调用CreateObject方法时,需要借助于TRAP宏函数,一旦异常产生,则可在应用程序中捕获并处理之。{Tinti;CClass’cls。ne
7、w(Eleave)CClass;cls->Use2);//deletecls;}图1堆区中的内存泄露voLacrejteO-lectl-‘’‘CObJect·obj-ne-(tLeaue)CObJeer;●●●’Tinterl-:TRAP(err.createObjectL‘’’;图2Trap示例代码TRAP机制保证了内存操作的安全性,应用时需要注意:首先,并非所有异常都需要前端程序员处理,一旦有异常产生,将逐步上溯至系统内核,通常情况下,程序员可以将95%的错误上交给系统处理,不要自己处理;其次
8、,TRAP的代价很高,不要连续使用多个TRAP,而是让方法Leave,从而将错误交给调用者处理;最后,需要特别注意,在进行动态内存分配时,不要习惯于C++的new操作符,Symbian平台中,需要使用new(ELeave),其本质是对new操作符的重载。2CleanupStack结构TRAP机制保证了系统内存分配的可用性,但并未杜绝内一3一万方数据电脑编程技巧与维护存泄露的发生。SymbianOS使用清除栈(CleanupStack)结构来屏蔽系统级的内存泄露。图3中给出了典型的C
此文档下载收益归作者所有