Android性能优化之道:从底层原理到一线实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

为何写这本书

Android性能优化的重要性体现在能为程序带来更大的价值及帮助Android开发者增强职业竞争力这两个方向上。

性能优化可以提升程序的稳定性、运行速度和流畅性,从而提高用户满意度,增加用户的留存率,促进业务增长。对于大中型公司来说,每个程序都会有专门的性能品质团队来负责优化性能,由此可见性能优化对提升程序价值的重要性。

对于Android开发者来说,掌握性能优化技术可增强职业竞争力,并有更好的职场表现。在平时的工作中,大多数人只关注基本的业务需求,很少有人关注业务需求之上的体验需求,所以开发者若是能具备很强的性能优化能力,就可以通过产品为业务带来更多的额外价值,那么自然就能获得更高的认可。另外,在面试中,性能优化也是必考内容,它是开发者高阶技术实力的体现,擅长性能优化的开发者更容易,在面试中脱颖而出,从而提升面试的成功率。

网络上有很多与性能优化相关的文章,市面上也有不少与性能优化相关的书籍,但是其中所讲的内容大都是一个个具体的性能优化案例,看完这些案例后,我们仅知道了在某个具体场景下怎么做。但是在实际开发中,我们面对的场景是多样且复杂的,不同的业务类型、不同的性能设备都会导致性能优化方法的不同。因此,很多时候我们会因为无法在网上找到同样场景的优化方案,而不知道从哪里开始下手,或者即便找到了类似的场景,并参考别人的方案制定了自己的优化方案,但是最终的优化效果很差,甚至可能出现优化方案根本无法落地的情况。

基于此,笔者决定写一本关于Android性能优化的图书。笔者拥有丰富的Android性能优化经验,先后负责过快应用引擎、飞书客户端等多个大型Android应用的性能优化工作。在多年的性能优化工作中,笔者总结了大量的经验和技巧,并经过两年的提炼和总结,形成了一套完整的性能优化体系。

笔者认为,要想做好性能优化,仅通过博客等网络渠道进行零碎学习是不够的,而是需要扎实且成体系地学习硬件、系统、应用等多个层面的知识点。所以本书不仅会讲解具体的性能优化实例,还会深入讲解实现性能优化需要具备的知识体系。笔者希望读者基于本书所讲的知识体系和经验,能够构建出自己的性能优化方法论,真正了解性能优化的本质,从而能够根据具体场景灵活制定性能优化方案。

本书特色

相较于其他同类图书或者网络文章,本书具有如下特色。

直指本质:针对所有性能问题,本书都从底层原理进行剖析,帮助读者理解出现类似问题的根本原因。

实战性强:本书所有内容都来自笔者多年的实际工作总结和思考,以落地实操为最终目标,可以帮助读者真正解决实际工作中遇到的问题。

内容全面:本书包含内存优化、速度和流畅性优化、稳定性优化、包体积优化、耗电优化、磁盘占用优化、流量优化等典型优化内容,覆盖了应用层、系统层、硬件层等多个维度。

体系性强:本书力求构建出一套性能优化方法论,这套方法论可以帮助读者从多个角度思考性能优化问题,从而灵活构建可以满足自己场景需求的性能优化方案。

案例丰富:本书给出了大量涉及应用层、系统层、硬件层等多个维度的针对监控和优化等环节的具体案例。

基于Android 14撰写:本书主要基于Android 14进行讲解,这样可以确保读者所学的知识点都是较新的。但是,出于兼容性考虑,实际工作中往往要基于各个系统版本来做性能优化,所以本书也会涉及Android 14以外的其他Android版本的源码。

提供全部源码下载:因为很多问题都是通过示例程序讲解的,所以书中涉及大量源码,对这些源码均提供了完整下载,下载链接为https://github.com/helsonzhao/android_performance。

本书读者对象

本书适合以下读者阅读。

初级Android开发者:这部分读者虽然主要精力放在基本业务需求上,但是要想快速成长并跑赢竞争对手,不可错过本书。

中级Android开发者:这部分读者在日常工作中已经开始关注性能问题,本书是他们突破瓶颈、高质量完成开发工作的最佳选择。

所有从事性能优化工作的人员:除了Android性能优化相关从业者,其他操作系统的性能优化人员也可以通过本书学到性能优化的原理和方法,这些原理和方法其实并不局限于具体的平台或者系统,而是相通的。

对Android底层原理感兴趣的读者:本书剖析了大量Android底层源码,读者可以通过这部分内容深入理解Android底层原理。

如何阅读本书

对于初级Android开发人员,建议重点研读原理部分,这些知识点能帮助这部分读者建立完整的知识体系,有了这些知识,便可以轻松应对日常开发工作。至于实战部分,这部分读者可以在之后的开发工作中慢慢地阅读和实践。

对于中级Android开发人员,因为性能优化工作是其日常工作中的重要组成部分,所以建议从前到后通读全书,全方位了解Android性能优化知识。书中有不少优化案例用到了比较复杂的技术,如Native Hook技术、字节码插桩等,这些技术是Android进阶要掌握的知识点,可以帮助这部分读者在技术方面更上一层楼。

对于其他读者,建议选择自己喜欢或者需要的章节进行针对性阅读。

致谢

感谢太太张艺,由于本书的内容较多,专业性较强,很多时候笔者都怀疑自己是否能够完成本书的写作,是你的鼓励才让笔者坚持下来。

还要感谢许多活跃在技术社区的朋友们,感谢大家提出的建议和长期以来对笔者的支持,希望本书能够不辜负你们的期望。