让Android飞!Google开始测试ART

标签: 动态 移动 Android开发 ART dalvik | 发表时间:2013-11-08 09:29 | 作者:李辉
出处:http://www.ctocio.com

Nexus5_

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设备的性能,我们为什么不欢迎呢?

相关 [android google 测试] 推荐:

让Android飞!Google开始测试ART

- - IT经理网
Google正准备用全新的Android运行时环境——ART取代原来的Dalvik,此举有望使Android饱受诟病的运行效率(卡顿)得到大幅提高,像iOS一样顺滑. 目前Google在最新的Android4.4上向开发者提供两个运行时环境——默认的Dalvik和测试中的ART. 在经历2010年 与Oracle的Java专利大战后,Google一直在寻求为Android平台寻找新的移动应用运行方案(编者按,Oracle起诉Google正是因为Google通过Dalvik虚拟机把移动版Java给开源了),在最新的ANdroid4.4中,人们终于看到了代号ART的全新运行时环境.

Android单元测试

- - CSDN博客推荐文章
    单元测试不管对于初学编程还是已经工作了很久的开发者来说,都不乐意花时间去写认为没用的代码进行测试,只要交给测试人员就行了,虽然这样也能把软件改出来,但也许你要花上几倍的时间去修改问题,如果在开发的过程中花点时间去写单元测试代码,把尽可能出问题的地方都测试一遍,把问题扼杀在最开始的地方,这样你就不必为后来找问题出处而烦恼.

Android集成测试

- - 百度质量部 | 软件测试 | 测试技术 | 百度测试
  Android集成测试主要是在单元测试的基础上测试接口访问或者异步任务是否正确,在. 移动凤巢系统中,大概有30+个接口需要测试,他们都遵循一个特定的访问模式:前台的. Activity获取到触发事件后,将它传给这些接口,这些接口都是AsyncTask的实现——即后台. 异步线程执行某个任务(一般是发送http请求到后端服务或者执行存取数据库等耗时操作),.

Android单元测试与模拟测试

- - 神刀安全网
考虑可读性,对于方法名使用表达能力强的方法名,对于测试范式可以考虑使用一种规范, 如 RSpec-style. 不要使用逻辑流关键字(If/ese、for、do/while、switch/case),在一个测试方法中,如果需要有这些,拆分到单独的每个测试方法里. 测试真正需要测试的内容,需要覆盖的情况,一般情况只考虑验证输出(如某操作后,显示什么,值是什么).

Android Robotium自动化测试

- - CSDN博客移动开发推荐文章
1、官方网站下载测试工程demo. 从 http://code.google.com/p/robotium/downloads/detail?name=ExampleTestProject_v3.6.zip 下载官方的Android测试工程demo. 解压后的文件NotePad、NotePadTest、readme.txt.

Android异步接口测试

- - 百度质量部 | 软件测试 | 测试技术 | 百度测试
    基于Android的C/S移动应用中访问后端数据的场景是非常多的,异步接口测试主要是在单元测试完成的基础上检查接口级访问是否正确,主要保证对外请求的组装与发送是否符合后端的约定. 现在项目的异步接口访问都遵循一个特定的访问模式:前台的Activity获取到触发事件后将接受到的参数传给一个异步任务,这些任务大都是AsyncTask的实现——即启动一个新的线程访问后台接口数据,完毕后调用回调函数更新UI展示,示意图如下:.

Android应用性能测试

- - CSDN博客推荐文章
java虚拟机有内存使用上限的限制. adb shell进入手机,这此参数被纪录在/system/build.prop中,如果想直接查看可以使用adb shell getprop. 单个应用程序最大内存限制,超过这个值会产生OOM. 单个java虚拟机最大的内存限制,超过这个值会产生OOM. android程序内存一般限制在16M,当然也有24M的,而android程序内存被分为2部分:.

Android UiAutomator 自动化测试

- - 操作系统 - ITeye博客
一、一个BUG引发的问题.     如果研发过程中有一个BUG:“不断的切换手机语言出现花屏现象”. 我想,最好的方式应该是自动化测试.     那么,自动化测试可以完成哪些任务呢.     简单的说,那些重复性的测试工作,都可以交给自动化完成:.         1、设置手机的语言.         2、添加、删除、收藏联系人.

Google将关闭Android App Inventor

- tinda - Solidot
新上任的Google CEO Larry Page已发誓要调整公司的重心,将精力集中中优先项目上,一些对用户有用但却对公司没有帮助的项目纷纷关闭,如Google字典服务,如Google Labs中的众多项目. 其中一个被关闭的项目是Android App Inventor. Android App Inventor由MIT计算机科学Hal Abelson领导开发,借鉴了入门级编程项目Scratch,让没有编程经验和知识的人开发Android应用程序,因此颇受教育界人士的欢迎.

Google Android Market疑遭屏蔽

- 小天 - Solidot
中国的Android移动用户报告无法访问Google官方的应用程序商店Android Market. Android Market此前也被临时屏蔽过,目前不清楚这次屏蔽是否是长期性的. Google的移动产品如Gmail等也同时被屏蔽. 中国的Android用户暂时可以使用第三方应用商店替代,但安全性无法保证,许多Android恶意程序都是在第三方应用商店传播.