android app启动慢分析

最近将gradle和android studio都升级到2.1,instant run功能确实好用,不过在测试的时候把缓存清理后,点击桌面launcher特别慢。

开始怀疑是引入视频、浏览器sdk导致的,打log看了下发现sdk初始化耗时很小,而且点击桌面icon,过了很久application的log才开始打,想了很久,经验里没遇到这种情况,那就看下全部log吧。

 log开关打开后,发现大量的art log,好家伙,总算明白了,运行时才开始做art,

instant run之所以快,是因为它将dex的粒度割的特别细,每个project或者每个库一个dex,这些dex用dexclassloader加载的时候art运行时(android系统大于等于5.0)会对它们做优化,这个优化是比较耗时的,价值dex有多,所以才出现了点击二十多秒才开始初始化application。

为了验证上面的推论,把apk包解压后有个instant-run.zip

解压后里面包含个个类库的dex文件


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值