On 03/05/2014 03:01 PM, Ning Shi wrote: > ART是在Android4.4正式出现的,就是它引起了Android中编译工具链的 > 改动。之前Dalvik拿到.dex或者优化过的.odex文 件,是使用JIT然后执行的。现 > 在ART是直接使用LLVM去做AOT(Ahead of Time),这样的话,执行速度自然就上 > 来了,带来的牺牲是应用的安装速度会降下来,因为AOT编译是在安装的时候做 > 的,后续的启动和执行,都使用的是 AOT之后的结果。所以等于是用一次时间牺 > 牲,换来之后的多次时间节省。 > ART目前是和Dalvik同时存在系统中的,用户也可以自己选择。在系统中它 > 们分别以Dalvik runtime (libdvm.so) 和 ART (libart.so)这两个库的形式存 > 在,ART的源码位置也是在和Dalvik的同级位置,直接在Android目录下有个art目 > 录。目前art目 录下的设置基本上也是参照Dalvik的形式来的,几个工具也都是类 > 似,只是把与原来的dexopt工具给换成了dex2oat,然后引入了LLVM去做 编译的工 > 作。到这个程度,LLVM等于已经参与了Android上的所有应用的编译工作,在art出 > 现之前,LLVM只是处理Android Renderscript中的rs文件。 挺好的,如果能配上图,就更明确了。比如 .dex 文件的aot处理, llvm和 art的 关系等等。