Toc
  1. 一、App的启动模式
  2. 二、App冷启动的优化
  3. 三、两种级别的启动优化
  4. 四、监控App启动速度
Toc
0 results found
bbcfive
App启动速度的优化与监控

一、App的启动模式

  • 冷启动:App点击启动前,它的进程不在系统里,需要系统新创建一个进程分配给它启动的情况。这是一次完整的启动过程。
  • 热启动:App在冷启动后用户将App退后台,在App的进程还在系统里的情况下,用户重新启动进入App的过程,这个过程做的事情非常少。

二、App冷启动的优化

用户感知启动慢,应该都发生在主线程上。其原因有很多,比如:在主线程上执行大文件读写操作、在渲染周期中执行了大量计算等。

App的启动主要包括三个阶段:

  1. main() 函数执行前(加载可执行文件、加载动态链接库…);
  2. main() 函数执行后(首屏初始化所需配置文件的读写操作、首屏列表大数据的读取、首屏渲染的大量计算…);
  3. 首屏渲染完成后(非首屏其他业务服务模块的初始化、监听的注册、配置文件的读取等)。

三、两种级别的启动优化

  • 功能级别的启动优化:main() 函数开始执行后到首屏渲染完成前只处理首屏相关的业务,其他非首屏业务的初始化、监听注册、配置文件读取等都放到首屏渲染完成后去做。
  • 方法级别的启动优化:进一步检查首屏渲染完成前主线程上的耗时方法,将没必要的耗时方法滞后或异步执行。

四、监控App启动速度

定时抓取主线程上的方法调用堆栈,计算一段时间里各个方法的耗时。

(本文内容来自戴铭专栏)

本文作者:bbcfive
版权声明:本文首发于bbcfive的博客,转载请注明出处!