整理了下Android M 和 N 的應用安裝時間 和 安裝過程中的Dex 優(yōu)化的時間情況对供,如下:
![對比](http://omu5krm39.bkt.clouddn.com/17-4-5/21996235-file_1491359091242_27ce.png?imageView2/0/q/75%7Cwatermark/2/text/d2FuZ2t1bmxpbi5kYXRl/font/Y29uc29sYXM=/fontsize/480/fill/IzIzNzhFMg==/dissolve/71/gravity/SouthEast/dx/10/dy/10%7Cimageslim)
對比
測試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優(yōu)化方式為 interpret-only戈毒,不編譯任何的機器碼,所以速度很快,Dex優(yōu)化的時間僅為Android M 的1/4赐劣, 安裝時間極大的減少
當將Dex優(yōu)化方式 改成 verify-profile, verify-none, verify-at-runtime 等也能使安裝時間大幅減少
everything的優(yōu)化方式對比 android M, 并沒有減少優(yōu)化和安裝時間
查看Android N 中Dex優(yōu)化的默認配置 :
install(應用安裝)與first-boot(應用首次啟動)使用的是[interpret-only];
ab-ota(系統升級)與bg-dexopt(后臺編譯)使用的是[speed-profile]趟薄;
forced-dexopt酗电,使用的是[speed]模式魄藕;
其他幾種優(yōu)化方式暫時還未發(fā)現在什么場景下使用
附: 修改應用安裝時的 Dex 優(yōu)化方式為: adb shell setprop pm.dexopt.install [interpret-only | verify-profile | verify-none | verify-at-runtime]
優(yōu)化方式的選項可以從上面的列表中找到