ArchSummit全球架构师峰会门票9折倒计时中~ 了解详情
写点什么

Android Studio 切换到新的 D8 编译器

  • 2018 年 4 月 17 日
  • 本文字数:802 字

    阅读完需:约 3 分钟

看新闻很累?看技术新闻更累?试试下载 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

2018 年 4 月 17 日 19:005162
用户头像

发布了 1008 篇内容, 共 342.7 次阅读, 收获喜欢 328 次。

关注

评论

发布
暂无评论
发现更多内容

如何大规模交付高质量、高一致性的RESTful API及配套产物

刘宇

API OpenAPI REST API

在线JSON转Go Struct工具

入门小站

工具

【网络安全】漏洞复现有多少种方式?

网络安全学海

php 网络安全 信息安全 WEB安全 安全漏洞

物联网实时监管 区块链云端留痕 公章何时何地何人用过一清二楚

CECBC

【VueRouter 源码学习】第一篇 - 环境搭建与路由模式介绍

Brave

源码 vue-router 9月日更

IntelliJ IDEA 中如何将 POM 中的版本号快速提出为属性

HoneyMoose

发布半小时登上GitHub首页的Spring Boot实战笔记,竟是京东T8编写

Java~~~

Java spring 架构 面试 Spring Boot

软件工程师必备沟通技巧

俞凡

沟通 认知

打一把游戏看一场病:当VR成为“数字新药”

脑极体

德勤:区块链成为现实,采用逐渐增多

CECBC

GraphQl Calculator计算指令@distinct:使用表达式对列表进行去重

杜艮魁

数据中台 graphql

Ubuntu Server 20.04 搭建安装Harbor

玏佾

Docker k8s Harbor

🚄【Redis干货领域】从底层彻底吃透AOF原理(基础篇)

浩宇の天尚

redis aof Redis 协议 9月日更

GitHub阅读量最高的文章竟是图解Java,不愧是Alibaba内部资料

Java~~~

Java 架构 面试 JVM 基础

区块链落地进行时:专利猛增,构建工业互联网信任价值

CECBC

Go- 结构体

HelloBug

Go 语言 结构体

Go- 方法-1

HelloBug

方法 Go 语言

Go- 方法-2

HelloBug

方法 Go 语言

APP 测试

刘帅强

LeetCode刷题704-简单-二分查找

ベ布小禅

9月日更

pnpm原理

法医

大前端 npm 9月日更

09. 深度学习携手大数据引领第三AI热潮--何为深度学习?

数据与智能

人工智能

Linux之ssh-add命令

入门小站

Linux

网络攻防学习笔记 Day125

穿过生命散发芬芳

9月日更 互联网安全

未来10年,C++5个非常有前景的就业方向

hanaper

Promise.all() 原理解析及使用指南

devpoint

Promise 异步任务 9月日更

微信朋友圈高性能架构设计

毛先生

RedHat 8 如何检查端口是否联通

HoneyMoose

Confluence 数据中心版本接近生命周期了

HoneyMoose

“吾道一以贯之”:华为Petal One的新格局

脑极体

🚄【Redis干货领域】从底层彻底吃透RDB原理(基础篇)

浩宇の天尚

redis RDB 快照 rdb分析 9月日更

AI在游戏反外挂中的应用与实践

AI在游戏反外挂中的应用与实践

Android Studio切换到新的D8编译器_移动_Sergio De Simone_InfoQ精选文章