了解 jvm+dalvik+art(2)

了解一下dalvik+art
dalvik 是google开发的适用于android平台的java虚拟机。(存活时间到android5.0)
1.支持.dex格式的java程序,.dex是专门为dalvik设计的一种压缩格式;
2.每一个dalvik作为一个独立的linux进程执行;独立的进程可以防止虚拟机崩溃导致所有应用程序关闭。
dalvik 虚拟机和java虚拟机的区别是 dalvik是基于寄存器架构,jvm是基于栈;
寄存器是在cpu中的一块区域,速度比较快。
堆栈位于cpu中的ram区域,速度仅次于寄存器。

DALVIK 支持JTT(just in time)编译技术,将执行次数较多的dex字节码编译成本地机器码,但是每次打开应用程序都会执行编译.

在ART运行环境中,采用AOT(ahead of time)运行方式.每次安装app的时候,字节码就会预先编译成字节码,使其成为真正的本地应用,每次打开之后不需要执行额外的编译工作,所以运行速度比较快。

ART相比Dalvik的缺点:
安装时会把程序编译 成机器语言,所有耗时相对较长,并且占用空间会相对较多。(但消耗的空间增幅一般不超过代码包大小的20%)

上一篇:Android虚拟机和类加载机制


下一篇:Android热更新详解