探究Symbian 资源管理及独特的异常处理机制.docxVIP

探究Symbian 资源管理及独特的异常处理机制.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
探究Symbian 资源管理和独特的异常处理机制移动应用开发1班 孙凯彬探究Symbian 资源管理和独特的异常处理机制摘 要本文通过比较Symbian OS C++与标准C++在异常处理机制上的差异,分析了Symbian OS 如何分配和管理资源,以应对因程序员忘记回收或者异常所可能引发的资源泄漏问题。本文主要深入探讨了以下三方面的内容:Symbian OS C++为何要采用特殊的的异常退出/捕获机制,当异常发生时清除栈机制如何管理资源,以及Symbian 提倡使用两阶段构造(Two-Phase Construction)的原因。最后,根据可移植性的要求,介绍了使用自定义智能指针来代替清除栈的实现方法。关键词:Symbian OS资源管理;异常处理;清除栈;两阶段构目 录引言…………………………………………………………………… … … … … … … … … … 3一、Symbian中的资源管理…………………………………… … … … … … … … … … 3二、清除栈…………………………………………………………… … … … … … … … … … 4三、异常处理………………………………………………………… … … … … … … … … … 8四、类的二阶段构造……………………………………………… … … … … … … … … … 16结束语………………………………………………………………… … … … … … … … … … 19参考文献…………………………………………………………… … … … … … … … … … 19探究Symbian 资源管理和独特的异常处理机制引言一个运行良好的程序,除了能够实现所有的功能外,还要有好的容错能力,才能给用户提供好的人机交互,能用程序实现功能是开发的根本,良好的容错、异常处理及有效的资源处理机制是对产品品质的提升。在Symbian系统中处理异常的方法与传统的标准C++中的try,catch机制有很大的不同。Symbian系统提供了一些特殊的清理机制来解决这个问题。系统提供了TRAP/TRAPD宏 、CleanupStack类以及一些约定俗成的方法(例如Leave函数,这些在我们了解了系统的清理机制以后就会清楚它们的工作原理了)。本文主要阐述了Symbian中特有的资源管理及异常处理机制Symbian中的资源管理如果在一个有充足的内存、充足的硬盘空间、充足的外部设备等资源丰富的系统上开发应用,那将是一件快乐的事,开发者只要把所需的功能实现,程序节能运行的非常好。事实上,这样的系统几乎不存在,开发程序过程中总是会遇到各种各样的问题。资源管理的一个重要方面就是防止资源泄漏。资源泄漏是指在程序中分配了资源,使用完毕后却没有相应地释放该资源,结果导致该资源一直被占据,直到程序结束。Symbian OS在设计支出,就以手持式通信设备为目标,考虑了如何能够在较少的资源还是那个有效地运行系统,给应用开发者提供了不同于其他操作系统过的API,能够进行有效的内容管理,提供了防止内存泄漏资源管理方式,这在其他的寓言开发是从来没有过的。Symbian通过3种方式-----清除栈机制、异常退出处理和类的二阶段构,来提高程序容错性,增加程序的稳定性。清除栈(一) 清除栈的创建GUI 应用程序或服务器程序不需要创建清除栈,因为在这两种程序中清除栈的创建都是框架代码的一部分。但如果是编写简单的控制台测试程序或是创建一个分离的线程,而且又需要使用清除栈或调用使用了清除栈的代码,就需要自己分配一个清除栈。清除栈被创建时,默认在内存中一次分配4 个空余位置。这些空余位置保留作为PushL函数压入对象的指针。所以,PushL 函数是可以异常退出的,无需担心异常退出发生时已压入的对象被遗弃,因为退出时传递的指针已经被安全地保存下来,它所指向地对象也会被安全地清除掉。(二)清除栈机制与原理每个手机的应用程序都仅拥有一个清除栈。清除栈是个全局变量。把指针对象压入清除栈,如果函数正常执行则将前面压入的指针对象从清除栈中弹出,并由函数销毁指针对象的空间。如果函数无法正常执行,则可以在函数的外部将异常捕获,因为清除栈是个全局变量,所以函数的外部也可以访问清除栈,并将清除栈中的指针对象弹出并释放。原理:把函数内部

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档