整理了下Android M 和 N 的应用安装时间 和 安装过程中的Dex 优化的时间情况,如下:
测试apk如下
- qq 6.6.8 (37.78M)
- 微信 6.3.30 (37.09M)
- 支付宝10.0.5.022801 (52.71M)
- 微博 6.11.0 (57.94M)
从图中可以看出 Android N 在安装过程中的默认Dex优化方式为 interpret-only,不编译任何的机器码,所以速度很快,Dex优化的时间仅为Android M 的1/4, 安装时间极大的减少
当将Dex优化方式 改成 verify-profile, verify-none, verify-at-runtime 等也能使安装时间大幅减少
everything的优化方式对比 android M, 并没有减少优化和安装时间
查看Android N 中Dex优化的默认配置 :
install(应用安装)与first-boot(应用首次启动)使用的是[interpret-only];
ab-ota(系统升级)与bg-dexopt(后台编译)使用的是[speed-profile];
forced-dexopt,使用的是[speed]模式;
其他几种优化方式暂时还未发现在什么场景下使用
附: 修改应用安装时的 Dex 优化方式为: adb shell setprop pm.dexopt.install [interpret-only | verify-profile | verify-none | verify-at-runtime]
优化方式的选项可以从上面的列表中找到