Jack和Jill:旨在更高性能的新版安卓编译器

Saikoa的技术总监Eric Lafortune,DexGuard的创造者,在安卓5.0修订版1(API 21.1)的SDK中发现了一些新的工具,主要是名为Jack和Jill的两个编译器。这些工具旨在简化安卓的编译流程。

谷歌在KitKat版本中引入了安卓运行时(ART)环境作为实验性的工具,并且在Lollipop版本中用它替换了Dalvik作为默认的运行时环境。在设备上安装应用程序时,ART获取DEX字节码然后将其转化为本地代码,进行预编译的同时又兼顾设备本身的特性。而现在,谷歌似乎正在进一步增强编译流程。

据Lafortune介绍,Jack是一个基于Eclipse Java编译器和ProGuard的工具。ProGuard是一个调优工具,通过删除无用的代码缩减代码库,通过重命名类、方法和属性混淆代码库。虽然ProGuard已经被整合到安卓的构建系统中,并且在生成发布包时推荐使用,开发者仍然可以自主选择是否要使用它。如果Jack成为官方工具,开发者就必须要强制使用这个工具,不过通过配置文件,他们对这个工具还是会有一定的控制权。

另外一个新工具Jill用于将Java库字节码转化成名为Jayce的中间字节码。Jack对Java源码和Jayce字节码进行编译,生成经过优化的DEX字节码。据Lafortune描述,这两个编译器“看起来相当实用”,尽管Jack目前还不支持“ProGuard的一些高级功能,例如移除日志代码”。

这两个编译器目前还不支持Java 8,不过他们力争“向后兼容并且开放将来扩展的可能性”,Lafortune补充到。开发者可以在使用安卓plugin 1.0.0 RC的Gradle构建中试用这些编译器。

作为谷歌提升其移动操作系统性能的又一次尝试,Jack和Jill能够生成更加优化的代码,尺寸更小并且可能是经过混淆的。

查看英文原文:Jack & Jill: New Android Compilers for More Performance

你可能感兴趣的:(Jack和Jill:旨在更高性能的新版安卓编译器)