Symbian 开发的22条军规
2010-05-31 20:16:00 来源:WEB开发网学习Symbian开发过程中在网上找的一些好的资料,下面的这个symbian开发22条军规转自:
http://blog.csdn.net/lius1984/archive/2009/12/26/5082364.aspx
1、 确保您的应用程序能够对系统关机事件做出响应。在您的AppUi::HandleCommandL()方法中,必须要对EEikCmdExit(以及任何特定平台相关的事件,例如Series 60上的EAknSoftkeyBack)做出响应。
2、要对外来系统事件做出响应。请牢记,您的应用程序在一个多任务电话系统上运行,您需要将注意力集中于刚获得/丢失的事件上,以确保当用户获得一个高优先级的通知时您能够做出正确响应。例如,正打进来的电话会干扰您的应用程序的运行,这时应确保您已保存了系统状态和数据(即:您需要对标准的“背景”事件采取恰当的行动—请参阅SDK)。一般来说,系统框架会处理这个问题,您不需要采取任何特殊行动—但一定要确保您没有妨碍系统框架的正常操作。
3、内存处理是Symbian OS需要考虑的一个重要课题。在这一点上,应注意电话有时会不同于模拟器。因此在将您的应用程序呈交给“Symbian 认证签名”进行测试之前,务必确保已经在实际电话设备上测试了您的程序。
4、 内存堆栈空间有限!应尽可能将对象放到内存堆中,而不要放到栈里。KERN-EXEC 3异常(panic)发生的主要原因之一就是栈的破坏/溢出。
5、 应用程序发生异常(panic)表明您的代码中一定有错误。以下是一些主要的、常见的错误:
Ⅰ:忘记将非对象成员、被分配到堆的变量加到CleanupStack上。
Ⅱ:将成员变量放到CleanupStack上—这一点要千万避免(在析构函数中将这些变量删除就可以了)。
Ⅲ:“重复删除”--例如,没有正确的从CleanupStack上Pop()出已经被销毁的对象,造成CleanupStack以后试图再次删除它。或者使用过一个对象之后将其删除但忘记将其值设成NULL,从而在析构函数里又试图删除一次。
Ⅳ:用可能不存在于您的析构函数中的变量调用函数。例如,以下代码可能导致异常因为有可能您在分配内存之前您的对象已经被销毁,或者在应用程序的另一处已经删除了该内存,这样iSomeServer就会处于NULL:
CMyClass::~CMyClass()
{
iSomeServer->Close();
delete iSomeServer;
}
应该如下编写该代码:
CMyClass::~CMyClass()
- ››开发Android 日历教程
- ››开发学院总结 Win 8实用技巧大全
- ››开发学院原创教程:把win8的IE10放桌面上方法(非...
- ››开发者眼中的Windows Phone和Android
- ››Symbian S60 SocketConnection参数
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››Symbian乏力:2010年诺基亚悲情大事记
- ››Symbian三大升级开启2011年新战略
- ››Symbian/Android/iOS/WM安装包对比
- ››Symbian一个活动对象的测试例子
- ››Symbian ListBox控件
- ››Symbian下自动切换SDK的批处理代码
更多精彩
赞助商链接