随着技术的发展,智能手机的硬件配置越来越高,可是它和PC相比,其运算能力,续航能力,存储空间等都还是受到很大的限制,同时用户对手机的体验要求远远高于PC的桌面应用程序。以上理由,足以要求开发人员更加专心地实现和优化你的代码了。选择合适的算法和数据结构永远是开发人员最先应该考虑的问题。同时,我们应该时刻牢记,写出高效代码的两条基本原则:(1)不要做不必要的事;(2)不要分配不必要的内存。
我从去年开始接触Android开发,以下结合自己的一点项目经验,同时参考Google的优化文档和网上诸多的技术大牛给出的意见,整理出这份文档。
1. 内存优化
Android系统对每个应用所能使用的RAM空间进行了限制(如:Nexus one对每个应用的内存限制是24M),同时Java语言本身比较消耗内存,dalvik虚拟机也要占用一定的内存空间,所以合理使用内存,彰显出一个程序员的素质和技术水平。
1)了解JIT
即时编译(Just-in-time Compilation,JIT),又称动态转译(Dynamic Translation),是一种通过在运行时将字节码翻译成机器码,从而改善字节码编译语言性能的技术。即时编译前期的两个运行时理论是字节码编译和动态编译。Android原来的dalvik虚拟机是作为一种解释器实现,新版Android(2.2+)将转换成JIT编译器实现。性能测试显示,在多项测试中新版本比旧版本提升了大约6倍。详情请参考http://hi.baidu.com/cool_parkour/blog/item/2802b01586e22cd8a6ef3f6b.html
2)避免创建不必要的对象
就像世界上没有免费的午餐,世界上也没有免费的对象。虽然gc为每个线程都建立了临时对象池,可以使创建对象的代价变得小一些,但是分配内存永远都比不分配内存的代价大。如果你在用户界面循环中分配内存对象,就会引发周期性的内存回收,用户就会觉得界面像打嗝一样一顿一顿的。下面的例子将帮助你理解这条原则:
转自:http://blog.csdn.net/pku_android/article/details/7483608#