开发学院手机开发Symbian 开发 Symbian 开发的22条军规 阅读

Symbian 开发的22条军规

 2010-05-31 20:16:00 来源:WEB开发网   
核心提示:V5起已是“不推荐使用”(deprecated),它的问题在于它将调用TPtrC(const TText*)构造函数,Symbian 开发的22条军规(4),该构造函数会调用strlen()函数来计算该字串的长度,虽然这不会带来额外的RAM开销,典型的最长回应时间是10-20秒,FAQ-0900有详细解释,却会在运行时
V5起已是“不推荐使用”(deprecated),它的问题在于它将调用TPtrC(const TText*)构造函数,该构造函数会调用strlen()函数来计算该字串的长度。虽然这不会带来额外的RAM开销,却会在运行时占用更多CPU周期。相反,宏_LIT()直接创建了一个在编译时就全部实例化的对象,节省了构造TPtrC的CPU开销。当然,您首先应该考虑的是否应该使用硬编码的字符串常量,因为当您将来地方化(localize)您的程序时,这种常量类型的描述符(descriptor)可能需要重新编码(我觉得作者这里写的有问题,_LIT()及_L()定义的是常量字符串,并非描述符,它不能够用描述符的一些通用的方法,只有调用_LIT()和_L()重载的()运算符才会变成const TDesC&类型的描述符,并使TDesC的一些通用方法可用---孙东风注)。

15、当在函数参数中使用描述符(descriptor)时,应缺省使用基类。在大多数情况下,以const TDesC&形式来传递描述符。对可修改的描述符,则应使用TDes&。

16、当在函数中传递或返回对象时,应确保如果您拥有该对象的所有权,您应负责将其清除!Symbian采取的约定是:函数中的指针表示所有权转移到调用者,而使用引用则表示被传递对象的所有权仍属于原所有者。

17、Active Objects是Symbian OS的重要特性之一。请仔细研究SDK文档、Symbian Developer NetWork白皮书,以充分理解其工作原理。下面有一些有用的窍门:

Ⅰ:在RunL()内无需使用TRAP()。Active Scheduler本身会TRAP函数RunL()并在其发Leave时调用CActive::RunError()。

Ⅱ:为此,您应实现自己的RunError()函数来处理从RunL()的Leave事件。

Ⅲ:保证RunL()操作尽可能简短。长时间运行的RunL()将阻塞其他Active Objects。

Ⅳ:总是实现DoCancel()函数,总是在AO析构函数中调用Cancel()。

18、您应尽可能利用Active Object框架机制。对于使用电池供电的设备,在一个循环中紧密不断地进行轮流检测(polling)是极其不适当的,将带来大量耗电。写游戏时,对此尤需特别注意,详情参阅Symbian Developer Network网站的技术文档:

www.symbian.com/developer/techli ... /XenGames_paper.pdf

19、ViewSrv 11异常对于繁忙运行的程序(例如游戏)是一个潜在的问题。当您的,或者其他任何程序中的ViewSrv active object不能及时响应View Server时就会导致此种异常。典型的最长回应时间是10-20秒。FAQ-0900有详细解释,FAQ-0920有针对如何避免此类问题的实用技巧。二者均可从www3.symbian.com/faq.nsf网页上的Symbian

上一页  1 2 3 4 5  下一页

Tags:Symbian 开发 军规

编辑录入:coldstar [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接