小册上新|掌握高手思路,一起做好 Android 性能优化!

2,117 阅读5分钟

对Android 开发者来说,无论是在工作还是面试中,性能优化都是一个绕不开的难题。比如下面这些场景,你肯定或多或少都遇到过。

  1. 当你很努力地优化了应用的性能后,用户依然不断抱怨应用卡顿、启动速度慢等问题。
  1. 当 Leader 直接给到你性能优化的 KPI,内存要降多少,包体积要减多少时,你倍感压力,头疼不已。
  1. 面试时,面试官不断追问你在开发中做了哪些优化?效果怎样?为什么要这样做?有没更好的方案?难点在哪?

实际上,难的不是这些问题,而是我们没有掌握合适的方法论和底层的优化思维。为什么这么说呢?不妨从我们平时的工作流程中入手,来看看到底是哪里出了问题。

为什么很多人做不好性能优化?

很多人在做性能优化的时候,都是先在网上查找别人做性能优化的案例,把它们直接套用到自己的应用开发中。这种做法好像能够很快地解决当下的一部分问题,但是效果却不一定好。

首先,这些优化方案不一定适用于你正在开发的应用。应用的种类不同,它的特性也不一样。比如说,大型应用业务多,中小型应用功能单一,还有 IO 密集型应用, CPU 密集型应用,强调稳定性的应用,以及强调内存低占用的应用等等。面对不用类型的应用和业务,网上的案例就有些捉襟见肘了。

其次,这样做出来的优化并不体系。就拿内存优化举例子,我们可能会先按照网上的方案治理一下内存泄漏,再按照网上的方案优化一下图片。这样做优化不仅零碎,效果可能也不好。体系的优化是一套能覆盖到大部分情况和场景的方案,比如针对 Native 内存的优化方案有 A、B、C,针对 Java 内存的优化方案有 D、E、F,方案中要能清晰说明为什么要这样优化,思路是什么,原理是什么,如何估量和评估效果等等。

出现这些问题的原因,主要是我们在优化过程中没有去思考过这些方案背后的逻辑,没有针对不同的问题做相应的变化和调整,所有的优化工作都很零散,也就很难沉淀下来成体系的优化经验,更不用说在工作中有什么质的提升了。这也就是为什么有的人做了好几年的性能优化工作,无论在晋升答辩,还是面试中,依然很难脱颖而出。

性能优化该怎么做?

那么,我们究竟该如何做好性能优化, 向资深工程师进阶呢?

作者本人是一位 Android 工程师,先后在腾讯、阿里负责性能优化工作,目前在字节担任资深 Android 工程师,负责飞书客户端性能优化。结合多年的工作经验,他认为想要做好 Android 的性能优化,需要建立起完备的知识体系,并能从本质出发,体系化地制定出适合我们应用特征的优化方案

那这该怎么做呢?性能优化的本质就是让运行在操作系统上的程序更合理的使用硬件资源,所以我们需要从硬件、系统、应用这三个维度入手,才能打造完备的知识体系,真正做好性能优化。我们这本小册也正是从硬件层、系统层、应用层三个维度出发来讲的。

Android 性能优化的主题比较多,但内存优化,速度优化以及包体积优化这三个主题相对来说是最重要的。当然,流量优化、功耗优化也很重要,不过相比前面三个开展的频率就低了很多。因此,小册主要基于内存优化,速度优化和包体积优化这三个主题展开。虽然只有这三个主题,但小册涵盖的知识点可以说是非常全面了,每个模块都会按照原理、应用、拓展的顺序进行详细分析和讲解,并且是由理论到实战,由简单到进阶的节奏。

内存优化部分,我们会基于底层中去了解内存是什么,讲解 Android 内存的底层组成,内存增长的原理,基于原理扩展出优化方案,并进行相应实战。

速度优化部分,我们主要从计算机硬件和 Linux 系统层了解影响 App 速度的本质因素,并基于这些因素衍生出一些方法路,自下而上系统化地提升 App 的速度,包括启动速度、页面打开速度、渲染速度等。

包体积优化部分,我们会拆分一个 APK 包的构成,从包体构成的每个部分和模块逐一击破,全面提升你的包体积优化能力。

详细内容大家可以看看下面这张思维导图。

性能优化思维导图.png

可以看到,这本小册内容还是非常全面的 ,不仅适合开发新人用来建立完备的知识体系,还适合有一定开发经验的人员作为进阶读物,同时你也可以把它当作一个工具书,用于查找优化方案。

最后,希望通过学习这本小册,大家能够真正深入、体系地掌握 Android 的性能优化,最关键的是能锻炼出自下而上的思考能力, 并能在技术的长路中越走越远,期待与你同行~

现在购买,享最低折扣

11 月 9 日~ 16日,上新特惠,限时 6 折,原价 ¥39.9,现在购买仅需 ¥23.94~

赶紧点击下方图片或者扫描海报二维码,一起加入学习吧!

宣传海报(1242x2650)-站内文章.jpg