电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

Android性能设计

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

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

Android性能设计

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部