BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Android Studio切换到新的D8编译器

| 作者 Sergio De Simone 关注 17 他的粉丝 ,译者 谢丽 关注 11 他的粉丝 发布于 2018年4月18日. 估计阅读时间: 2 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料!

据谷歌软件工程师Jeffrey van Gogh介绍,近日发布的Android Studio 3.1切换到了一个新的DEX编译器,旨在提供更好、更快的编译。

除了速度更快之外,新编译器D8据称与之前的DX编译器相比有着同等或更好的运行时性能。

把.class字节码转换成.dex字节码,是Android运行时构建Android应用时的必要步骤,直接影响整体构建时间和App性能。谷歌通过自己的基准测试项目测出,编译时间缩短了20%,而且.dex文件更小,虽然只有几个百分比。这些结果应该要打个折扣,因为它们是基于单一的框架。实际上,有用户已经报告,他们在Android Studio 3.0中使用D8时编译时间增加了。

除了其他好处外,使用D8还有一个好处,就是支持脱糖,让Java 8才提供的特性(如lambdas)可以转换成Java 7特性。把脱糖步骤集成进D8影响了所有读或写.class字节码的开发工具,因为它会使用Java 8格式。你可以在gradle文件中设置一个属性,恢复到以前的行为,让脱糖发生在Java编译之后,.class字节码仍遵循Java 7格式:

android.enableD8.desugaring = true

如果你在使用D8时遇到了任何一般性问题,你可以通过修改gradle.properties文件里的一个属性恢复到DX,如下所示:

android.enableD8=false

虽然D8现在是Android Studio的默认编译器,但那不是说开发人员要忙着迁移他们的App。事实上,在谷歌可以确信D8不会导致任何用户的退化之前,旧的DX编译器将一直可用。也就是说,至少在六个月内,谷歌将继续修复在DX中发现的Bug。在第一阶段,谷歌工程师将密切监控D8 Bug追踪器,查找任何可能影响迁移计划的问题。在六个月没有重大退化之后,谷歌还将保留DX至少一年,以确保任何开发团队都有足够的时间迁移。此后,将只有旧版本的Android Studio提供DX。

查看英文原文Android Studio Switched to New D8 Compiler

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT