android 启动速度优化
首先是根据log查看用户从点击到应用启动并显示的总耗时是1s1左右(如果是install安装的话会更慢)
然后查看上面的log分析在哪里耗时了,从用户点击到system_server拉起application进入oncreate后什么也不干直接打印log,发现应用在这过程中什么也没干已经耗时800ms,
所以此段的耗时并不是发生在应用层,于是分析应用层的什么内容会影响应用的启动速度
角度1:是否gradle引入太多依赖导致?检查发现引入的都是基本的依赖,都是必须的
角度2:类中是否有太多没用的import已经没用的变量导致加载变慢?删除没有使用的import资源
角度3:分析apk文件,将apk在as中打开,发现apk中包含多个classes.dex文件
与正常启动速度的apk进行对比,发现启动慢的apk中包含了多个classes.dex文件
接下来就是分析为什么会多出几个多余的dex文件以及如何能够优化(此处的方案可以百度)
我这里的主要处理方式是突然灵光一闪尝试把debug版本的软件改成release版本,
gradle中添加release的编译方式
查看编译出的apk,与原来的对比发现classes.dex文件有少了很多,且包体积减小
运行并查看log,启动速度快了接近50%
从点击图标到application启动耗时变成200ms
之后只要再根据应用中的具体逻辑具体分析一些逻辑上的耗时并且优化就行了