使用Art而不是Dalvik进行编译

时间:2014-11-12 09:35:00

标签: android eclipse adt dalvik

我正在使用Eclipse,我有一个使用Android版本21(5.0)的新项目。我想用Art而不是Dalvik编译它。我需要做些什么才能实现这一目标?

编辑:问题的原因是我有这个问题:

[2014-11-12 10:30:49 - Dex Loader] Unable to execute dex: method ID not in [0, 0xffff]: 65536
[2014-11-12 10:30:49 - MAMUT] Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536

我预计不会这样做我解决问题:

  

特别值得注意的是制作minSdkVersion 21 dev的建议   build - 这允许您以递增方式生成多指令输出   新的ART格式,使得开发迭代更快   循环(至少在Android 5.0设备上)。

由于

3 个答案:

答案 0 :(得分:2)

I want to compile it using Art instead of Dalvik. 
Art和Dalvik不是编译器,它们是虚拟机。他们执行了编译器(您的应用程序)生成的字节码

答案 1 :(得分:2)

  

特别值得注意的是建立一个minSdkVersion 21 dev构建的建议 - 这允许您以新的ART格式递增地生成多指令输出,从而实现更快的开发迭代周期(至少在Android 5.0设备上)。

那是错的,应该粗略阅读

  

特别值得注意的是建议将 Android Build Tools 21.1及更高版本Multidex Support Library一起使用 - 这允许您使用dex格式的多个dex文件没有改变,没有改变发展。

dex格式的问题在于它不能包含超过65536种方法。解决方案是简化将输出拆分为多个dex文件。我们过去有两个问题

  • dx工具无法生成多个dex文件
  • 在设备上使用多个dex文件非常复杂,因为设备只加载1个dex文件,而其他文件中的代码必须以某种方式手动加载。

构建工具21解决了第一个问题,只需在编译选项中添加-multi-dex标志即可生成多个dex文件。

multidex支持库解决了第二个问题。它告诉那些设备如何加载其他dex文件。 Lollipop及以上的ART运行时(4.4也有ART也可以做同样的事情)能够使用多个文件而不被告知如何这样做。

官方Building Apps with Over 65K Methods文件也是相关的。

答案 2 :(得分:0)

只需要一台运行ART的模拟器或真实设备。

检查一下: https://developer.android.com/guide/practices/verifying-apps-art.html