Android 预编译优化笔记

48 篇文章 2 订阅
14 篇文章 1 订阅

做 Android 系统开发,碰到了首次开机会很久的问题,这里针对改善措施做下记录。

以下修改在 6.0 、8.0 上做过验证,是 OK 的。

1.打开预编译优化

修改 device/xxx/xxx/BoardConfigCommon.mk
添加

WITH_DEXPREOPT := true
DEX_PREOPT_DEFAULT := nostripping

去掉 WITH_DEXPREOPT_BOOT_IMG_ONLY := true

#WITH_DEXPREOPT_BOOT_IMG_ONLY := true

WITH_DEXPREOPT := true:开了odex之后,在编译的时候,整个 system image 就会被预先优化。由于在启动时不再需要进行app的dex文件进行优化(dex2oat操作) ,从而提升了开机速度;由于 system image 增大了,需要适当加大 system 分区。

WITH_DEXPREOPT_BOOT_IMG_ONLY := true:只是把 boot image 进行预先优化,主要生成 boot.art 和 boot.oat 。这能显著的减少s ystem image 大小。但是,所有的 app 都需要在第一次启动的时候进行优化,需要花更长的开机时间。将其关闭。

2.单个应用去掉预编译优化

某些应用会依赖一些第三方 jar 包,编译时如果打开了预编译优化,全编译时可能报错无法正常编译。
这时候,针对单个应用,去掉其预编译优化。
具体措施为在应用的编译文件 Android.mk 中添加 LOCAL_DEX_PREOPT := false
意思是此应用不用预编译优化。
这样编译生成的文件没有 oat 文件,也就意味着没有被提前优化。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值