公司的App启动速度太慢了要求提高启动速度,

于是动手研究下

把启动速度从2000ms降低到800ms左右。

先记录下提速的方法

  1. application的Oncreate方法里面的逻辑代码全用

    new Handler().post(new Runnable());包裹

  2. Activity的Oncreate()方法如此;

这种方法会把代码执行的时序全拖到onResumer之后

3,然后在Oncreate onresume 方法 一切你认为会阻碍到启动速度的方法和代码加上log打印信息

看图

wKioL1S_RTKgcWS1AAFPZs3lbvk220.jpg


看点击的activitymanager 他会打印时间,只要看下打印时间之前的log打印了哪些信息

然后判断这些打印信息的代码是否会阻碍到app的启动速度

如果会的话就把这些代码全部new Handler.post掉,或者new Thread 掉。但是顺序也会有先后,

打印下log慢慢体会。


我的app在启动的时候会扫描数据库,但是newHandler new Thread 后发现还是在 启动时间之前就已经运行了,这证明启动的时候会去扫描数据库,时间慢了100ms。于是用new Handler.postDaley();延长90ms运行,发现可以把这个扫描的模块拖到打印时间之后运行,app启动后视图出来了才开始扫描数据库,速度又提高了100ms

达到了800ms左右。


4. 另外还要注意布局的深度,尽量简化布局。