[hellogcc] Re: Android中编译工具链的改动----LLVM分量的增加

  • From: Yao Qi <qiyaoltc@xxxxxxxxx>
  • To: hellogcc@xxxxxxxxxxxxx
  • Date: Thu, 06 Mar 2014 08:45:42 +0800

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的
关系等等。

Other related posts: