Android运行环境Dalvik和ART的比较
2016-01-19 16:52
337 查看
Android4.4采用ART取代Dalvik,简单理解就是Android程序运行的根本机制改变了,程序会启动地更快,而且会更省资源。表现在用户体验上,就是Android更流畅了,同时续航能力显著增加。
Dalvik:应用程序在每次运行的时候,字节码都要通过及时编译器编译成机器码,这样会拖慢应用的运行效率。
ART:应用在第一次安装的时候,字节码就会预先编译成机器码,使其成为真正的本地应用,应用的启动速度和运行速度都会提升
试想一个程序,安装后你使用了N次。按原先Dalvik的方法(术语叫Just-in-time compilation),N次启动就需要进行N次这样的“转换”。但是按照ART的方法(术语叫Ahead-of-time compilation),不管这个程序你使用几次,都只发生一次“转换”。这也解释了为什么使用ART会降低CPU的使用频率,进而降低电量的使用。
当然,ART也会带来其他的负面影响。其一是增加程序安装所需的时间,只是目前还不知道具体会是多少。考虑到其他技术因素,这个时长的增加可能比我 为了讲解方便所举的“第二次转换”所需的时长要长一点,但是肯定不会长到无法忍受的地步。据我查到的资料,这个变化对小程序几乎可以忽略不计,受影响的应 该是以游戏为主的程序,因为他们本身代码量就更大。不过这跟你获得的收益也是成正比的,因为ART可以让你在打开游戏时省更多的时间。如果将来都是“后台 安装”的话,对用户体验更是微乎其微,你去看几个新闻这时间就过去了。
第二个缺点是会使安装后的文件占用更多的空间,据称是10%-20%的增长。不过不要紧,这个增长指的是对“代码”部分文件的增加,比如一个 100M的游戏,可能代码只有20M,剩下80M是图片和音乐等文件,所以即便增加20%的安装所需空间,也只不过多了4M而已,在动辄16G,32G, 甚至128G容量的智能手机面前,影响更是微乎其微。
Dalvik:应用程序在每次运行的时候,字节码都要通过及时编译器编译成机器码,这样会拖慢应用的运行效率。
ART:应用在第一次安装的时候,字节码就会预先编译成机器码,使其成为真正的本地应用,应用的启动速度和运行速度都会提升
试想一个程序,安装后你使用了N次。按原先Dalvik的方法(术语叫Just-in-time compilation),N次启动就需要进行N次这样的“转换”。但是按照ART的方法(术语叫Ahead-of-time compilation),不管这个程序你使用几次,都只发生一次“转换”。这也解释了为什么使用ART会降低CPU的使用频率,进而降低电量的使用。
当然,ART也会带来其他的负面影响。其一是增加程序安装所需的时间,只是目前还不知道具体会是多少。考虑到其他技术因素,这个时长的增加可能比我 为了讲解方便所举的“第二次转换”所需的时长要长一点,但是肯定不会长到无法忍受的地步。据我查到的资料,这个变化对小程序几乎可以忽略不计,受影响的应 该是以游戏为主的程序,因为他们本身代码量就更大。不过这跟你获得的收益也是成正比的,因为ART可以让你在打开游戏时省更多的时间。如果将来都是“后台 安装”的话,对用户体验更是微乎其微,你去看几个新闻这时间就过去了。
第二个缺点是会使安装后的文件占用更多的空间,据称是10%-20%的增长。不过不要紧,这个增长指的是对“代码”部分文件的增加,比如一个 100M的游戏,可能代码只有20M,剩下80M是图片和音乐等文件,所以即便增加20%的安装所需空间,也只不过多了4M而已,在动辄16G,32G, 甚至128G容量的智能手机面前,影响更是微乎其微。
相关文章推荐
- 15 个必知的 Android 开发者选项
- 移动开发者最爱的9个优秀Android代码编辑器
- Android WindowManager实现悬浮窗效果 (一)——与当前Activity绑定
- ImageView设置纯色图片颜色
- Android Support Library学习(一)
- Android sh 终端下time命令
- android 弹出对话框之四周变暗处理方式
- Android studio 学习资料汇总
- 使用天天模拟器开发Android应用
- Android开发笔记(五十三)远程接口调用AIDL
- Android自由行之走进zxing,轻松实现二维码扫描
- android Intent启动flag含义
- Android Studio插件开发实战(3)-FindViewByMe插件分析
- Android绘制时钟
- 关于Android Canvas.drawText方法中的坐标参数的正确解释
- Android确定分区布局
- Android 百分比布局库(percent-support-lib) 解析与扩展
- Android SharedPreferences的简单使用
- Android的文件操作
- Android Fragment 你应该知道的一切