Google正准备用全新的Android运行时环境——ART取代原来的Dalvik,此举有望使Android饱受诟病的运行效率(卡顿)得到大幅提高,像iOS一样顺滑。

目前Google在最新的Android4.4上向开发者提供两个运行时环境——默认的Dalvik和测试中的ART。

在经历2010年 与Oracle的Java专利大战后,Google一直在寻求为Android平台寻找新的移动应用运行方案(编者按,Oracle起诉Google正是因为Google通过Dalvik虚拟机把移动版Java给开源了),在最新的ANdroid4.4中,人们终于看到了代号ART的全新运行时环境。Google鼓励开发者尝试ART并提供反馈意见。

在 面向Android开发者的页面上,Google表示新的运行时环境依然处于试验阶段,还有一些工作没有完成。不过用户已经可以在Android4.4(随Nexus 5推出)的开发者设置选项中启用ART。

有国外记者尝试安装ART,整个过程花了大约十分钟优化手机中的app,但也许是测试版的缘故,程序运行速度和流畅度并未有太大提升。

Android应用目前的运行环境Dalvik能够即时编译Java代码,供Android系统运行app使用。那么为什么Google要用ART取代Dalvik呢?Android Police的分析也许更加简单明了:

ART,也就是Android Runtime运行时,处理应用执行的方式与 Dalvik完全不同。目前的运行时环境依赖即时编译器(Just-In-Time,JIT compiler)编译代码,换而言之,App开发者只编译了程序代码的一部分,其余的汇编工作则留给用户的设备每次运行app时完成,这会导致客户端设备比较大的开销,运行效率也不高,但这样做的好处是能够实现跨平台和架构。ART的设计初衷是将即时编译改为预先编译(Ahead of Time,AOT),这样程序每次运行时就不需要先启动虚拟机或编译代码,启动时间会大大缩短,执行速度也会大大提高。

Pingwest的 报道指出了ART的优点和缺点,摘录如下:

由于ART还处于测试阶段,所以目前还很难精确地度量出其为Android设备提升的效率。但是一些基准测试表明它将大多数应用程序的执行时间削减了一半左右。这就意味着那些需要大量处理器性能和长时间运行的任务会被更快地执行完毕,系统也会更多地停留在闲置状态。电量损耗会减少,流畅度也自然会提升。

当然ART带来一些优点的同时,也会带来一些缺点。

其一,由于ART需要应用程序在安装时就把程序代码转换成机器语言,所以这会消耗掉更多的存储空间,但消耗掉空间的增幅通常不会超过应用代码包大小的20%。

其二,由于有了一个转码的过程,所以应用安装时间难免会延长。拿最新的Google+应用为例,其apk格式的安装包大小为28.3MB,但其代码仅为6.9MB,所以多消耗掉的存储空间并不惊人。至于第二个缺点那就只能等待了。

事实上,ART项目在Google内部已经进行了2年左右的时间。回溯一下,当时差不多就是Google和甲骨文因为Java专利官司闹得不可开交的那段时期。虽然到今天我们很难判断发起ART项目的初衷是哪一个,但既然它能提升Android设备的性能,我们为什么不欢迎呢?

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. Nginx系列教程(一)| 手把手教你在Linux环境下搭建Nginx服务
  3. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  4. 学习Android闹钟源代码(三)-AlarmClock类分析(part1)
  5. JavaScript与Android原生相互调用并传参
  6. Android中3种全屏方法及3种去掉标题栏的方法
  7. Mac系统搭建STF环境
  8. Build Android(安卓)Project with Gradle
  9. 为什么移动端跨平台开发不靠谱?

随机推荐

  1. Android富文本编辑器
  2. Android Studio 友盟多渠道打包
  3. 对Android Activity添加容错处理
  4. Android的Bitmap和缓存机制
  5. Android原生(Native)C开发之一:环境搭建篇
  6. lua学习笔记 0 android嵌入Lua
  7. [导入]2010-03-03 传智播客—Android(五)数
  8. android 学习之popupWindow 在指定位置上
  9. Android中SQLite数据库存储方式
  10. Android启动过程详解(3)——Zygote