ep1介绍了Application启动过慢的原因,本节分析Activity启动过慢的原因,启动速度标准以及工具。
link



启动MainActivity过慢

原因可能有多个,如下图。

  • 加载布局
  • 加载 Bitmap(引起GC)
  • 网络请求
  • 读写 User Preference

分析问题

Method tracing tool

Method Tracer 工具被用来查看每个方法的执行时间。

如果onCreate的执行超过了16ms~30ms,那么它很可能是有问题的。

Inserting Trace Commands

使用trace来记录开始/截止时间,所记录的时间会显示在Systrace中。

1
2
3
4
5
trace.beginSection();

// code to be valued

trace.endSection();

造成Activity启动过慢的原因

Complex Layouts

首当其冲的是复杂布局导致加载过慢,布局越复杂,越多的资源文件(图片、主题)需要加载。

解决方法有降低复杂度、使结构扁平化、对于不可见的元素暂时不加载。

懒加载&异步处理

当初始化过程中涉及多个耗时操作,最糟糕的情况是把它们串行起来进行,这会导致每一项操作的延迟被叠加起来,让用户抓狂。

这时应当判断哪些操作是一定要串行进行,哪些是可以异步加载的,从而进行优化。


====End====