资料介绍
Symbian中的游戏编程
Symbian中的游戏编程
所有的系统端事件都有这样的一个通用性质,那就是可以被一个应用程序所捕获。当一
个系统事件发生时,最前面的应用程序会失去焦点。这会导致该应用程序user
interface类(CAknAppUi)的HandleForegroundEventL函数被调用。如果不考虑处理这
个函数,应用程序可以处理相关的动作,如暂停程序。
应用程序需要注意内存的节约,这不仅包括在运行时内存的使用,还包括编译后代码的
大小,总之,在处理RAM使用中最重要的一条原则就是,我们应该尽早的释放这些已分配
的内存,每一步都要提醒自己这样做了吗。在目标机器上,OS上的核心会保持跟踪每个
线程的内存,并且在程序退出后可以重新释放它们。这就保证了当一个应用程序退出后
,所有的内存都会被释放掉。如果他们没有被正确的释放掉应有资源,那结果一定数量
的资源会被保存在系统中。
在Symbian
OS中,每个线程都有它自己的内存堆栈,在线程已经运行时,这个堆栈大小是不可以被
改变的。在S60中缺省的堆栈大小仅有20KB,所以在使用时要格外的小心。这里要注意的
是,在模拟器上运行时,是没有这个堆栈大小限制的,因为它是根据windows来运行的,
这就是程序们每个步骤都应该在硬件(手机)上试试。大部分的堆栈溢出是由堆栈里描
述符所引起的,这种情况可以通过在堆上分配描述符来避免。
注意递归的使用是很耗费内存的,如果递归程序是不可避免的,那我们每次传入的参数
以及部分变量都应该最小化,以防止溢出。
为了减少编译后代码的大小,我们应该遵循如下的方针:)
1、除非必要,否则不要导出method
2、不要生成没有必要的虚函数(有附加的虚函数表,增加了体积)
3、不要过分的使用TRAP捕捉陷阱
4、避免复制代码
5、找到可以分解的函数
6、使用一般的控制和组件
对TRAP宏的使用要小心,并不是说避免