精通安卓性能优化(Pro Android Apps Performance Optimization)-前言

最近在做安卓性能优化相关的事情,想起曾看到的《Pro Android Apps Performance Optimization》,那个时候刚刚开始接触安卓,还在学习安卓四大组件,没有到专注的考虑性能问题的地步。当时欣慰的发现和作者(Herve Guihot)为同一家公司工作,不过这位大牛在美国分部,没有当面请教的机会。

市面早已经有这本书的翻译版,也有人在论坛发布自己的译文,不过更喜欢读原版,刚好最近时间充裕一些,边阅读边将翻译理解记录到这里,更像是阅读笔记,风格也比较随意。

水平所限,难免存在各种各样的问题,如有发现,还请不吝赐教。随时欢迎各种开发技术交流(QQ群:258801259)。

如转载请注明出处。

 

                                                                                                                                ———— 北冥有鱼

 

==================== 正文开始 =====================================

介绍

Android迅速变得无处不在。随着世界性的功能机到智能机的转换和平板电脑的出现,我们的生活越来越难以离开这些设备。现在的应用开发者主要在两个平台之间选择:Android和iOS。Android降低了甚至可以说打破了应用开发的门槛,开发Android应用所需要的仅是一台计算机(当然要有应用开发知识)。工具是免费的,几乎任何人都可以开发达到数百万用户的应用。随着Android普及到各种设备,包括平板电脑和电视机,有一点很重要:要保证你的应用不仅在所有设备上运行良好,而且比竞争对手更好。毕竟,门槛的降低针对所有的应用开发者,在许多情况下,你发现自己要在日益增长的Android应用市场中争夺一席之地。不管你编程是为了谋生,或者为了成为精英,或者简单的想让世界更加美好,应用的性能是一个关键因素。

这本书假设你已经熟悉Android应用开发,希望更进一步探索怎样使你的应用运行的更快。尽管Android工具和在线文档使得创建应用很简单,但是性能优化有时艺术高于技术,没有严格的规则。《Pro Android Apps Performance Optimization》可以给你在几乎所有的Android设备上达到好的性能的简单方式,不管你是尝试优化已经存在的应用或者从头开发某个应用程序。Android允许开发者使用Java、C/C++,甚至汇编语言,你可以通过许多不同的方式实现性能优化,利用CPU的功能特性,或者只是简单的针对不同的问题使用不同的语言。

第一章重点优化Java代码。你最初的应用很可能只是使用了Java语言,将会发现算法本身比实现重要的多。还将学习如何利用简单的技术去大幅优化你的应用,比如缓存和最小化内存分配。另外,将会学习如何保持应用的响应(性能的一个非常重要的指标)和如何有效的使用数据库。

第二章介绍Android NDK,带你更进一步(或者更肤浅一些,取决于讨论对象)。尽管从Android 2.2开始Java代码可以编译成native代码,使用C代码实现某些程序可以产生更好的结果。NDK同样允许你移植已有的代码到Android,而不需要全部使用Java重写。

第三章带你了解汇编语言。尽管很少被大多数应用开发者使用,汇编语言允许你利用每个平台特有的指令集,是优化你的应用程序的一个很好的方式,它也会增加复杂度和维护的成本。尽管汇编通常被局限在应用的某些部分,不应该被忽视它的好处,因为针对性的优化可以达到巨大的效果。

第四章说明了怎样使用内存可以提升性能。除了学习在你的代码中使用更少内存的简单方式,还将学习因为CPU的设计,内存的分配和访问对性能有直接的影响。

第五章教你为了保持应用的响应和提升性能,如何在Android应用中使用多线程,因为越来越多的Android设备可以同时运行多个线程。

第六章说明了测量应用性能的基本知识。除了学习如何利用API测量时间,还将学习如何使用一些Android工具更好的观察应用的时间花费在哪里。

第七章教你如何保证你的应用合理的使用电能。因为许多安卓设备是电池供电的,节约能源是非常重要的,因为快速清空电池的应用将会快速的被卸载。本章说明了如何在不牺牲安卓应用特性的情况下最小化电能消耗。

第八章介绍了一些优化应用布局和优化OpenGL渲染的简单技术。

第九章关于RenderScript,在Honeycomb引入的一个相对较新的Android组件。RenderScript全部是关于性能的,从它的第一版开始已经进化了许多。本章将会学习如何在你的应用中使用RenderScript,同时学习RenderScript定义的许多API。

希望你能喜欢这本书,并且在里面发现很多有用的技巧。你将发现,很多技巧不是Android独有的,可以在其他的平台复用,比如iOS。个人来讲,我比较偏爱汇编,希望随着Android平台的发展和NDK对汇编的支持能够吸引很多开发者,即使只是为了学习一个新的技能。然而,我很想强调,好的设计和算法通常已经考虑到了你需要的所有性能优化。祝好运,很期待你的Android应用。

你可能感兴趣的:(精通安卓性能优化)