关于Android App的优化, 从第一篇的计划开始, 到内存优化的系列文结束, 不知不觉近三个月的时间, 写了十五六篇相关的博文, 算是对自己的知识的一个系统化, 也希望能给大家一些帮助.
在此有对此做一个总结.
路线
![Android App优化](http://oat9lzupi.bkt.clouddn.com/2016-11-06-Android App优化.jpeg)
1, App性能优化要怎么做
在系列的开篇文中, 我们聊到了本系列的一个缘由, 和当时的一个计划, 系列也基本是朝着这个这个方向走的.
2, 性能分析工具
在此介绍了一些惯用的性能分析工具, 包括官方, 第三方的, 内存分析的, UI分析的, 执行时间性能分析等等.
关于工具的使用, 还有一篇番外篇--adb的使用
3, App启动速度优化
第一篇真正动手的优化项目, App的启动速度优化. 这里实际上有一个小系列, 为了将问题说得更清楚, 加入了一篇系列之外的译文--Application的启动流程分析, 然后是启动速度优化的理论和实例挑战.
4, Layout怎么摆
介绍了Layout分析的工具, 并以实例说明了其使用. 提出了一些关于Layout优化的建议.
5, ANR详解
从ANR的概念, ANR的产生原因, 如何避免ANR这几个角度来"剖析"了下ANR. 提供了如何分析ANR的方法, 并深入分析了ANR的集中产生原因和其解决之道.
6, 消除卡顿
讲解了卡顿的产生原因, 并引入工具实例分析如何避免卡顿.
7, 内存优化
这是一个大的子集, 分成了五篇来写, 分别包括:
7.1 垃圾回收的基础知识—GC那些事儿
简单解析了GC的机制, 旨在让大家对于垃圾回收有一个理论理论基础, 对于GC Roots, 活对象, 死对象等有个概念.
7.2 Android是如何管理App内存的
以Android的VM为基础, 说明了Android App的内存限制, App切换时的内存管理机制, 进程优先级等.
7.3 内存分析工具详解
介绍了一系列内存分析工具的使用.
7.4 以一个内存泄露代码为例讲解内存问题分析的过程
基于上篇的内存分析工具, 对一个内存泄露的实例代码进行分析, 找出内存泄露的原因. 这么一个过程, 实际上也是对于前面理论基础, 工具使用的一个实践.
7.5 内存使用小结
算是对内存优化系列的一个小结, 对于常见的内存泄露机器解决方案, 内存使用等有一个概览.
着重对于内存泄露的分析和解决有一个说明.
8, 电量省着用
电量使用优化是一个不太被关注的优化, 还是以工具入手, 介绍电量使用的分析方式, 并给出常见的耗电项极其优化方案.
9, 高效网络请求
从网络流量对用户的影响切入, 介绍了App网络的分析, 各方面网络优化的方案等.
对于网络缓存的使用, 引用了MVP架构Github客户端之网络缓存篇.
说明
如系列开篇中所言, 本系列可以算是一个基于实际线上App的性能优化的笔记. 并非App优化, 就算是单说性能优化, 此系列也并没有能涵括所有.
App的优化是一个持续的工作, 需要我们持续的关注.
实际上, 关注代码质量, 也是App优化的一个方面.
结语
照例, 加个结语, 算是对自己的一个小结, 有些东西也希望分享出来大家共勉.
首先, 对于写文, 一概的态度是相对严肃的, 总认为, 毕竟的对外传输知识, 内容可能会少, 但不希望有错. 希望没有把大家带到坑里~~哈哈.
然后, 实际上一直强调, 授之以渔. 重要的是教方法, 所以, 可以看到这个系列中很多是在讲解一些工具的使用, 结合案例的分析过程. 并非单纯的摆出性能优化应该怎么做balabala, 一二三四五六点.
再然后, 并非没有理论. 正所谓知其然知其所以然, 引入了好几篇的理论文章作为衔接, 是想让大家能在同一个理论基础上去加深对工具使用和分析过程的理解.
最后, 上面几点其实都是废话, 大家点赞就好.
共勉的话
学知识, 知其然知其所以然
讲知识, 授之以渔而非鱼