Android Q-Go Device Configuration Guide 文档中有要求:
DONT_UNCOMPRESS_PRIV_APPS_DEXS
To leverage the P feature "Full Stack Integrity: expand verified boot to cover privapps" Android will
uncompress priv-apps for system APKs. Unfortunately this causes ~90MB increase system ROM size. For
Go devices, you may disable this feature to save space.
DONT_UNCOMPRESS_PRIV_APPS_DEXS := true
简单的理解即配置DONT_UNCOMPRESS_PRIV_APPS_DEXS := true,能节省大约90MB的大小.
分析:如何节省90MB?
从源码中看出这个feature跟priv-app下面的apk有关.但是是在编译中生效的,很难去打印log调试.
想到一个调试方法:
编译DONT_UNCOMPRESS_PRIV_APPS_DEXS = true版本1
编译DONT_UNCOMPRESS_PRIV_APPS_DEXS = false版本2
查看版本1和版本2的system下面priv-app的大小,部分apk大小存在差异.
经过验证确定是DONT_UNCOMPRESS_PRIV_APPS_DEXS差异导致.导出3个apk查看.
使用aapt l -v xxxx.apk查看apk详细信息,可以查看到DONT_UNCOMPRESS_PRIV_APPS_DEXS = false时,classes.dex的压
缩率均为为0.
当DONT_UNCOMPRESS_PRIV_APPS_DEXS = true时,压缩率为57%,56%,54%.(apk不同压缩率不同)
目前使能DONT_UNCOMPRESS_PRIV_APPS_DEXS,大约节省了70MB的空间.