dex-oat的小知识

Dalvik-ART-OAT

ART兼容Dalvik.也就是说ART 能运行”dex”(Dalvik执行文件).因此对Androidapp的开发者来说,他们没有什么区别.两者最大的区别是:ART把JIT(Just-in-Time)变成了AOT(Ahead-of-Time).JIT需要在每次运行app时都需要执行一遍,而AOT 只需要执行一次,而后续再运行此app是不需要再执行,其明显提高了性能.当然ART 这样做,也是有代价的,那就是以空间换时间.ART能对应用的所有code做优化,其把bitcode 编译为ELF文件.而ELF文件也往往比odex文件大很多.而JIT 只能对local/method做优化.ART的另一个缺点是其第一次执行优化时需要更长的时间.这也是导致第一次开机时间过长的原因.

AndroidO四种编译方法:

  • verify: 只做验证,相当于不做优化.
  • quicken: 部分优化.
  • speed: 所有优化
  • speed-profile: 根据profile-list进行优化

编译相关选项

  • WITH_DEXPREOPT
    对system下的应用进行dex2oat优化
  • DONT_DEXPREOPT_PREBUILTS
    包含了include $(BUILD_PREBUILT)的应用不优化
  • WITH_DEXPREOPT_BOOT_IMG_ONLY
    开机阶段的classpath进行优化
  • LOCAL_DEX_PREOPT
    单个应用是否优化
  • PRODUCT_DEXPREOPT_SPEED_APPS(AndroidO)
    列表中的应用会会用AOT全部优化
  • dalvik.vm.usejit
    是否开启JIT
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值