Android性能优化

工作几年,主要负责过InCallUILauncher,虽然不多,但在性能优化上还是有一些自己的经验和看法,在这里记录一下。

首先我认为性能优化最核心的思想就是提升用户体验,何谓体验? 可能不同的人有不同的答案.
在我看来一定要站在用户角度才知道优化什么。
有点杂乱,先记录要点, 以后再详细写:

  1. 启动速度。关键点是要把第一页的内容尽早展现给用户。初始化流程; 启动页白屏; 布局层次; 懒加载; cpu运行情况
  2. 流畅性。关键点是主线程的耗时流程。布局层次,布局重用,过度绘制,RecyclerView优化,动画优化,自定义布局和View,耗时操作移去子线程
  3. 内存。图片优化(不用过大的背景图,RGB555,使用Shape或适量图,tint涂色),慎用三方库,及时释放不用的内存。

使用工具检测

  1. TraceView找出耗时方法
  2. log输出真正的耗时,方便对比优化前后
  3. 过度绘制显示绘制层次
  4. 布局查看器查看布局层次结构
  5. Systrace查看流程度
  6. CPU Profiler检查线程运行忙碌情况
  7. Memory Profiler检查内存占用情况
  8. Lint代码检查工具检查代码