性能设计 Android 应用程序运行的移动设备受限于其运算能力,存储空间,及电池续航
由此,它必须是高效的
电池续航可能是一个促使你优化程序的原因,即使他看起来已经运行的足够快了
由于续航对用户的重要性,当电量耗损陡增时,意味这用户迟早会发现是由于你的程序
虽然这份文档主要包含着细微的优化,但这些绝不能成为你软件成败的关键
选择合适的算法和数据结构永远是你最先应该考虑的事情,但这超出这份文档之外
1 介绍 写出高效的代码有两条基本的原则: 不作没有必要的工作 尽量避免内存分配
2 明智的优化 这份文档是关于Android规范的细微优化,所以先确保你已经了解哪些代码需要优化,并且知道如何去衡量你所做修改所带来的效果(好或坏)
话费在开发的时间是有限的,所以明智的时间规划很重要
这份文档同时确保你在算法和数据结构上作出最佳选择的同时,考虑 API选择所带来的潜在影响
使用合适的数据结构和算法比这里的任何建议都更有价值,优先考虑 API版本带来的影响有助于你找到更好的实现
(这在类库代码中更为重要,相比应用代码) 在优化 Android程序时,会遇到的一个棘手问题是,保证你的程序能在不同的硬件平台上运行
虚拟机版本和处理器各部相同,因此运行在之上的速度也大不一样
但这并且不是简单的A比 B快或慢,并能在设备间做出排列
特别的,模拟器上只能评测出一小部分设备上体现的东西
有无 JIT的设备间也存在着巨大差异,在 JIT设备上好的代码有时候会在无 JIT的设备上表现的并不好
如果你想知道一个程序在设备上的具体表现,就必须在上面进行测试 3 避免创建不必要的对象
对象创建永远不会是免费的
每个线程的分代 GC给零时对象分配一个地址池以降低分配开销,但往往内存分配比不分配需要的代价大
如果在用户界面周期内分配对象,就会强制一个周期性的垃圾回收,给用户体验增加小小的停顿间隙