也许一个较小的JAR文件意味着一个较小的游戏世界。可能我们应该考虑减少供用户游戏的通关数量?
混淆可以打乱代码来防止那些喜欢偷窥的人,它还有减小最终JAR文件大小的功能,并能改善性能,尤其是对于早期的VM。一些混淆器有更高的效率并能减小更多的JAR文件大小,因此可以尝试不同的混淆器(第7章还将简洁地讨论两种可用于Sun ONE Studio Mobile Edition的混淆器)。
6.3.6 堆内存
开发者需要意识到堆内存,尤其是把应用程序移植到另一个设备上时。堆内存保存所有的运行期代码、图像和其他与MIDlet相关的对象。如果没有将其大小保持在一个限度内的话,将导致一个OutOfMemory错误,并且MIDlet将终止运行。例如,一个用贴砖填充的背景可能需要使用屏幕外缓冲来优化设备性能,此时就可能导致此类问题。
通常,Symbian系统设备并不指定堆内存的限制,以便让开发者有足够的空间使用。Nokia 6600和Sony Ericsson P900/P908都允许最大达8MB的堆内存。当然,手机的其他应用程序也共享此内存空间,并且,在任一时间,应用程序管理软件可能决定哪些能运行、哪些不能运行。开发者可以采用一些策略来最小化内存使用。Flyweight设计模式、对象工厂和对象再生都能最小化内存中对象的数量,当对象不再使用时将其释放,确保应用程序有足够的内存使用,而不是仅仅依赖垃圾收集器来管理内存。
把MIDlet移植到更小的或不同的设备可能会有一系列挑战。这些设备可能只有少得多的堆内存,开发者应该意识到这一点。重要的一点是,记住,用于创建应用程序图像的图像文件的大小在运行期间对堆内存的使用有直接的影响。一个折衷的方案可能是减少图像内容来减少整个内存的消耗,例如,通过减小Sprite中的图像质量和图像细节。