使用Jack和Jill有哪些优点?

5
在发布Android N之后,Google正式推出了带有Android Studios 2.1的Jack工具链。
Jack的主要优势(由于此page)是:
完全开源
可在AOSP中使用;欢迎合作伙伴做出贡献。
加速编译时间
Jack具有特定的支持,以减少编译时间:预先处理、增量编译和Jack编译服务器。
处理缩小、混淆、重新打包和多重dex
不再需要使用ProGuard等单独的软件包。
但是,注释处理、代码编织(例如aspectj)和字节码操作不受支持(对我来说非常重要)。
同时,加速编译时间对我来说并没有太大意义,我创建了一个带有一小堆依赖项的示例项目,在Jack和默认编译器中,编译和构建时间都少于10-15秒。
那么,为什么我要迁移到Jack呢?

你为什么说字节码操作不被支持呢?现在有一个新的Transform API可以让你进行这个操作。http://tools.android.com/tech-docs/new-build-system/transform-api - Doug Stevenson
@saeed你的意思是编译时间少于10-15秒?Jack更慢吗? - Hades
编译、构建和运行我的项目不到10或20秒钟,所以我看不到Jack中的“减少编译时间”的必要性。 - Saeed Masoumi
@DougStevenson 这份文档说Jack目前没有使用这个API。 - Saeed Masoumi
@Saeed,它最终应该会。Jack和Jill目前还没有准备好供一般使用,但是当它们准备好时,它们应该是当前编译器和dexer的透明替代品,假设没有使用Android Gradle插件创建的内部任务的奇怪技巧。 - Doug Stevenson
显示剩余3条评论
1个回答

1

现在使用 Android Gradle 插件版本 2.2.0-alpha1 或更高版本,默认支持注解处理。

另外,由于此 issue 转换 API 的存在,有助于字节码编织,在后续版本中将得到支持。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接