zoukankan      html  css  js  c++  java
  • Android ART、Dalvik在multidex上的差异、关联

       为提升应用运行性能,谷歌官方从5.0(api level:21)版本开始,将虚拟机运行环境默认为ART, 此处主要研究ART、Dalvik在multidex处理上的差异和关联,做了一个简单的手绘,如下: 

      multidex由分包、合包两个过程组成,分包均是通过andriod build tool来做的,两者存在一个很重要的差异点:

      android 5.0及以上手机在安装apk时,手机设备中的dex2oat工具会将dex1~dexN读取合成为一个oat文件, 供art使用。dex2oat的过程是不区分主dex、辅助dex的,这样在编译时就可以节省dex merging这个操作(用来计算主dex放哪些类),dex的增量编译效率得以提高。而android 5.0以下版本的手机上,dalvik的输入文件为dex,需通过主dex使用multidex support包加载辅助dex的方式来合包。

      因此,5.0及以上版本,multidex support的install操作是需要阻断的,它的兼容逻辑在MultiDex.install可以看到:

      即,系统配置属性java.vm.version大于"2.0.0"表明虚拟机运行环境为ART。

    Ref:

      https://developer.android.com/studio/build/multidex.html#about

      https://developer.android.com/guide/practices/verifying-apps-art.html

           

      

  • 相关阅读:
    自己上手写性能测试工具(一)
    你的领导真的很傻X吗?
    微软自动化测试工具palywright
    虫师『性能测试』文章大汇总
    虫师『软件测试』基础 与 测试杂谈
    「UI 测试自动化selenium」汇总
    web测试02
    web测试01
    测试20
    测试19
  • 原文地址:https://www.cnblogs.com/tonybright/p/8907220.html
Copyright © 2011-2022 走看看