公司的App启动速度太慢了要求提高启动速度,
于是动手研究下
把启动速度从2000ms降低到800ms左右。
先记录下提速的方法
application的Oncreate方法里面的逻辑代码全用
new Handler().post(new Runnable());包裹
Activity的Oncreate()方法如此;
这种方法会把代码执行的时序全拖到onResumer之后
3,然后在Oncreate onresume 方法 一切你认为会阻碍到启动速度的方法和代码加上log打印信息
看图
看点击的activitymanager 他会打印时间,只要看下打印时间之前的log打印了哪些信息
然后判断这些打印信息的代码是否会阻碍到app的启动速度
如果会的话就把这些代码全部new Handler.post掉,或者new Thread 掉。但是顺序也会有先后,
打印下log慢慢体会。
我的app在启动的时候会扫描数据库,但是newHandler new Thread 后发现还是在 启动时间之前就已经运行了,这证明启动的时候会去扫描数据库,时间慢了100ms。于是用new Handler.postDaley();延长90ms运行,发现可以把这个扫描的模块拖到打印时间之后运行,app启动后视图出来了才开始扫描数据库,速度又提高了100ms
达到了800ms左右。
4. 另外还要注意布局的深度,尽量简化布局。
原文地址:http://sw3458856.blog.51cto.com/6499064/1606592