不管你是在大厂还是小厂,不管你开发能力有多么牛逼,不管你参与开发过什么出名APP,性能优化这一关你必定是要过的,而在性能优化之中最重要的一环还得是启动优化。
因为启动速度直接决定了用户使用该 App的留存率和转化率,想必没人希望自己点开某APP后需要等待很长一段时间才打开吧?
所以我发费了一点时间,去研究了一番,发现网上大多数关于启动优化文章,都有三个共同特性:
1. 将启动页主题背景设置成闪屏页图片
这么做的目的主要是为了消除启动时的黑白屏,给用户一种秒响应的感觉,但是并不会真正减少用户启动时间,仅属于视觉优化。
2. 主页面布局优化
1)通过减少冗余或者嵌套布局来降低视图层次结构
2)用 ViewStub 替代在启动过程中不需要显示的 UI 控件
3. Application 和 主 Activity 的 onCreate 中异步初始化某些代码
因为在主线程上进行资源初始化会降低启动速度,所以可以将不必要的资源初始化延迟,达到优化的效果。但是这里要注意懒加载集中化的问题,别用户启动时间快了,但是无法在界面上操作就尴尬了。
但并不说是不管用或者过时了,只是这三种优化方式都是非常基础的方式,当你的启动优化遇到了瓶颈,是不能够再通过这三种方式突破的。
对于如今Android 行业中来说,在简历中写上会基础的优化方式并没有什么亮点。别人想看的是:体系化的论述以及实际的项目实践。
什么叫体系化的论述呢?例如启动优化:
- 首先你要做好App 启动阶段,系统framework是如何启动这个 App 的,这个阶段是否可以优化?
- App实际启动分析,你得知道你 App 启动时耗时方法都哪些?造成这些耗时方法的原因有哪些?启动时系统资源占用如何?
- 然后根据上述两轮分析,开始准备实际的优化方向;
- 项目实践:在大型项目中落地查看实际的收益,很多时候理论与实际是需要实践去验证的,很多优化需要不断的调优,才能拿到实际的收益;
从第一步就可以看出,就涉及到了Framework相关知识,把 Framework与具体的性能优化相结合,那就能体验出了解它的实际意义了,也没有那么容易忘记了。
很多小伙伴自己尝试做这个流程还是比较吃力的,毕竟不是网上搜搜就能找到每个阶段系统化的分析的,而且项目实践对于很多小红包也是个老大难的问题。
为了帮助到大家更好的掌握性能优化相关知识点,这准备了 性能优化知识点汇总和Android 性能监控框架 的学习文档,中间记录了 启动优化、内存优化、UI优化……等知识点,感兴趣的可以看下这《Android 性能调优系列学习手册》:https://0a.fit/dNHYY
内存优化
UI优化
电量优化
网络优化
Bitmap优化与图片加载优化
感兴趣的可以看下这《Android 性能调优系列学习手册》:https://0a.fit/dNHYY
多线程并发优化与数据传输优化
安装包优化与服务优化
启动优化
Android 性能监控框架 Matrix
更多Android 知识点可参考
Android 性能调优系列:https://0a.fit/dNHYY
Android 车载学习指南:https://0a.fit/jdVoy
Android Framework核心知识点笔记:https://0a.fit/acnLL
Android 八大知识体系:https://0a.fit/mieWJ
Android 中高级面试题锦:https://0a.fit/YXwVq