Symbian OS 精要 |
| 作者:未知 来源:转载 发布时间:2006-11-30 22:16:59 |
|
一般诀窍 1.‘Symbian 开发师网络’提供大量信息资源,协助您为 Symbian OS 操作系统编写应用程序。您应经常访问 www.symbian.com/developer 网站以便获取最新的 SDK、技术资料、编码范例和白皮书。您从开发师网 络网站能够获得: • Symbian OS‘常见问题’(FAQ) 库。这是一个对开发者 来说极有价值的信息库,涵盖了最常见的设计和编码 问题。 • 许多白皮书。其中包括《Symbian OS C++ 编码标准》。 在Symbian OS 本身的开发过程中,Symbian 设定了 若干重要的编码习惯方法和规范。《编码习惯方法白 皮书》向外部程序员解释这些习惯方法。通过采用这 些约定俗成并经过试用和验证的规范,您可以通过开 发Symbian OS 软件受益到Symbian OS 在自身开发 中获得的宝贵经验。 • Symbian OS Developer Library,标准API 参考文档、 Symbian OS 指南。 • 下载应用程序范例、应用程序库、属于Symbian OS 但不一定被装到所有手机上的‘可选’系统API、使 较新Symbian OS 版本上的API 能够在较旧版本上运 行的移植程序库等等程序工具。 • 关于调试工具和开发工具方面的信息。 • 新闻组论坛 (www.symbian.com/developer/leters/forum.html),使 您能够从Symbian 工程师和更广的开发者团体那里 获得指导。有各种不同论坛,从针对C++ 和Java 的 具体问题、到硬件和Symbian 签名等等,涉及到开 发工作的各个方面。 2. 注册并订阅Symbian 开发者网络期刊 (www.symbian.com/developer/letters/index.html) —— 该期刊通过电子邮件每月发布一次, 是了解与 Symbian 开发者相关的最新消息的最佳途径。 3. 采用Symbian OS 的移动电话生产商也拥有自己的开 发者项目。您也应该在他们的网站注册,以便获取针 对某种具体型号的电话的最新信息和诀窍。 4. 获得认证! (www.symbian.com/developer/academy/index.html) 《Symbian 认证程序员》证书能够向雇主显示您是一 名合格的Symbian 工程师,并有助于客观地评估您 所掌握的Symbian OS 相关技术的各项能力。 5.‘Symbian 签名’(Symbian Signed)旨在推广设计 Symbian OS 应用程序的各种最佳范例。通过Symbian 签名的应用程序均遵守行业认同的质量标准并迎合网 络运营商对签名应用程序的要求。请到‘Symbian 签 名’网站(www.symbiansigned.com)获取关于 Symbian 签名的更多信息。 6. 除了Symbian 和相关生产商之外还有一个活跃的开 发者社区。请访问 www.symbian.com/developer/about/trdprtysites.html 以查找众多知名的第三方开发者网站的链接。 7. 最后,现在关于Symbian OS 的出版物日益增多。 Symbian 出版社 (www.symbian.com/developer/books/index.html)出版 的一系列Symbian OS 相关主题的书籍,目的都是帮 助您更轻松的编写更可靠的Symbian OS 代码。 设计诀窍 1. 最重要的设计诀窍是将‘引擎’代码与用户界面(UI) 代码分开,分为不同的模块。这样设计有助于您的程 序在不同用户界面系统之间的移植,Symbian OS 本 身也采用这种设计。 方法之一是在二进制级就进行这个区分。将所有非用 户界面相关代码放到独立的引擎.DLL 文件中。您的程 序中用户界面相关的代码可以链接到这个。DLL 文件,从而访问引擎获取其提供的功能。另一种方法是在源 代码级做出区分。应用程序生成为一个单一的.APP 文 件,但将‘引擎’相关代码和用户界面相关代码分到 不同的.CPP 和.H 文件中,以便于管理和调试。 编码时采用这种设计,您可以减轻移植到新的用户 界面平台时产生的负担;纯引擎代码经常可以不经 修改就在任何用户界面平台上运行。这意味着移植 到新用户界面时您只需要移植和优化已经单独分开 的用户界面层就行了。 2. 设计时要牢记地方化支持。千万不要将字符串或文字 ‘硬编写’到您的源文件中——应使用Symbian OS 提 供的资源文件机制来储存字符串。 3. 应坚持使用软件开发包(SDK)和Symbian OS 发布 版本明确支持并提供文档的API。使用不受支持或 ‘不推荐使用’(deprecated)的API 将给您的应用程序 带来潜在的问题—— Symbian 保留在未来的版本中更 改或者移除不应被外部开发者使用的API 的权利。 4. 不要假定所有的‘系统’文件都会出现在所有电话上。 持有Symbian OS 执照的厂商可以灵活的改制其手 机;基于同一平台的电话如果由不同的生产商生产很 可能包涵不同的支持文件——从而,比如说,如果为您想要播放的音响片段编写固定的地址,此代码将不 会保证具有良好的移植性。您至少应该考虑如果未来 的手机没有这个系统文件,您将如何处理出错状态的 问题。 编码诀窍 以下是您在编写代码时应该记住的一些一般诀窍。 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,从而在析构函数又 试图删除一次。 |
| [] [返回上一页] [打 印] |
|
文章评论 |
