Local blog for Japanese speaking developers
次世代 dex コンパイラのプレビューを公開
2017年8月24日木曜日
この記事は
プロダクト マネージャ、
James Lau
による Android Developers Blog の記事 "
Next-generation Dex Compiler Now in Preview
" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
Android デベロッパーの方なら、dex コンパイルが APK をビルドする際の重要なステップであることをご存知でしょう。dex コンパイルは、.class バイトコードを Android ランタイム(古いバージョンの Android では、Dalvik と呼ばれていました)用の .dex バイトコードに変換する処理です。通常、dex コンパイラは、日々のアプリ開発であまり意識することはありませんが、アプリのビルド時間や .dex ファイルのサイズ、ランタイムのパフォーマンスに直接的な影響を与えます。
そのため、dex コンパイラには、重要な改善を行うための投資が続けられています。先日、
Android Studio 3.0 ベータ版リリース
の一部として、次世代 dex コンパイラである D8 をプレビュー リリースしたことをお知らせします。
現在の DX コンパイラと比較すると、D8 は高速化されているだけでなく .dex ファイルのサイズも小さくなっています。しかも、アプリのランタイム パフォーマンスは同等または向上しています。
*
こちら
のベンチマーク プロジェクトでテストしています。
*
こちら
のベンチマーク プロジェクトでテストしています。
試してみるには
プレビュー版の D8 は、
Android Studio 3.0 ベータ版
以降で利用できます。試してみるには、プロジェクトの gradle.properties ファイル内に以下の内容を設定します。
android.enableD8=true
D8 の正確さやパフォーマンスはさまざまなアプリでテストされており、たいへん有望な結果が出ています。この信頼できる結果を踏まえて、
AOSP
をビルドする際のデフォルト dex コンパイラを D8 に切り替えています。今のところ既知の問題はありませんが、皆さんのフィードバックをお待ちしています。バグレポートは、
こちらのリンク
からお送りください。
次のステップ
D8 は、今後数か月間にわたって Android Studio 3.0 リリースでプレビューが行われる予定です。この期間中は、コミュニティから寄せられた重大なバグレポートの対応に集中します。D8 は、Android Studio 3.1 でプレビューを終えてデフォルトの dex コンパイラとなる予定です。そのタイミングで、DX コンパイラは正式にメンテナンス モードに移行し、修正されるのは重大な問題のみとなります。
D8 に加え、Proguard に代わってプログラム全体の圧縮や最適化を行う R8 の作業も進んでいます。R8 プロジェクトはすでに
オープンソース化
されていますが、Android Gradle プラグインへの組み込みはまだ行われていません。R8 の詳細は、近日中にコミュニティ向けプレビューの準備ができた段階でお知らせします。
ツール デベロッパーの皆さんは、バイトコード ツールの Java 8 対応を
4 月には、
desugar を利用した Java 8 言語機能についてお知らせしました
。現在、desugar ステップは Java コンパイル(javac)の直後、バイトコードの読み取りまたは書き換えツールの起動前に実行されています。今後数か月のうちに、この desugar ステップは D8 に組み込まれ、パイプラインの後方のステージに移動する予定です。これによってビルド時間全体がさらに短縮され、最適化されたコードが生成されるようになります。この変更により、バイトコードの読み取りまたは書き換えツールは、desugar ステップの前に実行されることになります。そのため、Android 用の .class バイトコードの読み取りまたは書き換えツールを開発している方は、ツールが Java 8 バイトコード形式を扱うことができ、desugar が D8 に組み込まれても問題なく動作を続けられることを確認する必要があります。
Happy dex'ing!
Reviewed by
Yuichi Araki - Developer Relations Team
ラベル
.app
1
.dev
1
#11WeeksOfAndroid
13
#11WeeksOfAndroid Android TV
1
#Android11
3
#DevFest16
1
#DevFest17
1
#DevFest18
1
#DevFest19
1
#DevFest20
1
#hack4jp
3
11 weeks of Android
2
A/B Testing
1
A4A
4
Accelerator
3
Accessibility
1
Actions on Google
16
Activation Atlas
1
Addy Osmani
1
ADK
2
AdMob
32
Ads
65
Ads API
58
Advanced Protection Program
3
AdWords API
11
Agency
1
AI
13
AIY
3
AIY Vision Kit
2
ALPN
1
AMP
114
AMP Cache
9
AMP Camp
2
AMP CSS
1
AMP Extension
1
AMP Fest
1
AMP for Email
4
AMP Optimizer
1
AMP Packager
1
AMP Playground
1
AMP Plugin
1
AMP SSR
1
AMP Story
4
AMP Toolbox
1
amp-bind
1
amp.dev
1
AMPHTML Ads
1
Analytics
9
Andorid
12
Android
391
Android 10
1
Android 11
20
Android 11 Compatibility
1
Android 11 final release
1
Android 11 meetups
1
Android 9
1
Android App Bundle
1
Android App Development
21
Android Architecture
1
Android Architecture Components
1
Android Auto
1
Android Design Support Library
1
Android Developer
13
Android Developer Story
4
Android Developers
12
Android Enterprise
5
Android for cars
2
Android Go
1
Android Jetpack
6
Android N
18
Android O
14
Android Open Source Project
1
Android P
7
Android Pay
1
android privacy
1
Android Q
13
android security
2
Android Security Year in Review
1
Android Studio
47
Android Studio 4.1
1
Android Support Library
6
Android Things
15
Android Tools
2
Android TV
11
Android Vitals
4
Android Wear
29
android11
6
androidmarket
3
androidstudio
1
AndroidX
6
Angular
2
Angular 2
2
AngularJS
2
Anthos
2
AoG
1
aosp
1
API
25
APIExpert
45
apk
2
APM
1
app
3
App Action
1
App Bundle
2
app engine
23
App Indexing
7
App Invites
6
App Maker
2
AppCompat
2
Apps Script
11
aprilfool
4
AR
2
Architecture Components
7
ARCore
1
ArtTech
1
Associate Android Developer Certificate
1
Audio
7
Auth Code
1
Authentication
9
AuthSub
2
Autofill
3
AutoML
1
Autotrack
2
award
1
Awareness API
1
Beacons
6
BERT
1
Best Practices
1
Better Ads Standards
3
BigQuery
10
Billing
1
Biometrics
1
BLE
4
Blink
1
Blockly
1
blogger
1
BodyPix
1
Brillo
1
Brotli
2
Budou
1
Buildbetterapps
2
Calendar
3
campaign
1
Campus
1
Canvas
1
Cardboard
4
Career
1
Case Study
1
CCPA
1
CDS 2020
3
CDS Recap 2020
3
Certificate
2
chrome
182
Chrome Custom Tab
3
Chrome Dev Summit
5
chrome extension
14
Chrome for Android
2
Chrome for iOS
3
Chrome OS
7
Chrome Tech Talk Night
4
Chromebook
4
Chromecast
7
chromewebstore
9
Chromium
6
CLI
1
ClientLogin
3
Closure Compiler
1
Cloud
22
Cloud AI Platform
1
Cloud Firestore
5
Cloud Functions
9
Cloud IoT Device SDK
1
Cloud Next
9
Cloud OnAir
2
Cloud OnBoard
4
Cloud PubSub
1
Cloud Storage
1
Cloud Study Jams
3
Cloud Summit
1
Cloud Test Lab
2
Cloudflare
1
CNN
1
Coalition for Better Ads
2
CocoaPods
1
code review
1
codejam
5
codelab
5
Codepen
1
Colaboratory
1
Community
5
compatibility
1
Compose
1
compute engine
3
Contests
1
Context
1
controls
1
Conversation API
1
conversations
2
Cookie
9
Coral
2
COVID-19
2
Crash Reporting
2
Crashlytics
2
Custom Element
1
Custom Model
1
dark theme
1
Dart
2
DataCenter
1
Daydream
4
Deep Learning
4
Delegation
1
Demo Party
1
Design Patterns
1
Design Sprint
3
DesignBytes
1
Designer
1
DevArt
3
DevBytes
6
Developer
14
Developer Console
4
Developer Preview
6
Developer Relations
2
Developer Review
1
Developers Story
4
DevFest
10
DevFestX
3
DevOps
1
devtools
4
Dialogflow
1
Differential privacy
1
Digital Goods API
1
DirectShare
1
Discover
1
DNS-over-HTTPS
4
Domain
1
Doodle
1
DoubleClick
4
Doze モード
1
drive
2
DX
1
Dynamic Links
3
EarlGrey
1
Easter Egg
1
ECMAScript 2015
1
Eddystone
4
Edge
1
egypt
1
Encryption
1
English
2
Envoy
1
ES2015
1
ES2016
1
ES6
2
ES7
1
Event
6
Featured
22
FIDO
5
final release
1
Firebase
120
Firebase Admin SDK
6
Firebase Analytics
10
Firebase Auth
4
Firebase Cloud Messaging
10
Firebase Crashlytics
2
Firebase Database
5
Firebase Libraries
1
Firebase Notifications
1
Firebase Performance
3
Firebase Remote Config
6
Flash
1
Flutter
6
Flutter App Development
1
font
3
fraud
1
G Suite
19
game
41
Game Developers Conference 2018
1
Game Developers Conference 2019
1
Gboard
1
GCP
17
GCPUG
1
GDC
1
GDD11JP
56
GDD2010JP
23
GDE
2
GDG
21
GDG Cloud
1
Geo
55
Gingerbread
1
GLIDE
5
Gmail
5
Gmail API
2
Go
1
golang
5
goo.gl
1
Google
7
Google Analytics
3
Google API
1
Google Apps
14
Google Apps Script
4
Google Assistant
10
Google Assistant SDK
2
Google Cast
8
Google Cloud
34
Google Cloud Day
4
Google Cloud INSIDE Digital
2
Google Cloud INSIDE Games & Apps
8
Google Cloud INSIDE Media
1
Google Cloud INSIDE Retail
3
Google Cloud Messaging
11
Google Cloud Platform
16
Google Code-in
1
Google Developer Experts
2
Google Developers Academy
1
Google Developers live
5
Google Developers Summit
2
Google Drive
6
Google Earth
1
Google Fit
2
Google for Games
2
Google for Mobile
2
Google for Startups
4
Google for Work
1
Google I/O
17
Google Impact Challenge
1
Google Maps
62
Google Maps Platform
50
Google ML Summit
2
Google Open Source Peer Bonus
1
Google Pay
4
Google Photo
1
Google Play
144
Google Play App Safety
1
Google Play Console
14
Google Play developer distribution agreement
1
Google Play Developer Policies
2
Google Play Game Services
10
Google Play Instant
1
Google Play Services
23
Google Play Store
1
Google Play アプリ署名
1
Google Plus
14
Google Search
7
Google Sheets API
3
Google Sign-In
12
Google Slides API
5
Google Summer of Code
1
Google Tag Manager
1
Google Trust Services
2
Google マップ
4
Google+
2
Googleapps
10
GoogleGames
1
GoogleI/O
28
GoogleLabs
1
GooglePlay
3
GoogleTV
1
GPS
1
Gradle
1
gRPC
2
GTUG
5
GWT
2
hack4jp
2
hackathon
7
Hangouts Chat
2
Hosting
3
HTML5
17
HTML5Rocks
1
HTTP/2
5
HTTPS
14
I/O Extended
4
ID Token
1
Identity
15
Identity Toolkit
1
IGF2010
4
IGF2020
2
Ignite
4
IME
11
Indie Game
7
Indie Games Festival
7
Indie Games Festival 2018
2
Indie Games Festival 2019
12
Indie Games Festival 2020
7
Inevitable ja Night
30
Insights
1
Instagram
1
Instant Apps
6
intern
2
Invites
1
IO19
3
iOS
21
IoT
7
IPv6
1
Issue Tracker
2
IWD
1
Japanese
5
Japanese Input
1
JavaScript
10
Jetpack
4
Jetpack Compose
3
K-12
1
Key Transparency
1
Knowledge Graph
1
Kotlin
22
Kotlin Android Extensions
1
Kotlin Beginners
3
Kotlin Vocabulary
2
Kubernetes
2
l10n
8
latest
16
latest news
1
LaunchPad
2
lifull
1
Lighthouse
1
LINE
1
Local AI
1
Location
1
Lollipop
10
Machine Learning
29
MAD Skills
2
MADSkills
1
Maker Faire Tokyo
1
Marshmallow
10
Material
1
Material Design
31
MDL
1
MDN
1
metrics
1
MIDI
2
mikan
1
Mixed Contents
4
ML
1
ML Kit
12
Mobile
15
Mobile Bootcamp
4
Mobile Sites certification
1
Mobile Vision
4
mod_pagespeed
1
Model Maker
1
monetization
2
monetize
3
Mozc
15
Music
1
NativeDriver
2
NativeScript
1
Navigation
1
NBU
1
ndk
3
Nearby
5
News
1
Next Extended
1
Next Tokyo
3
Nexus
2
Nexus S
1
NFC
1
Node.js
3
notifications
2
Noto CJK
1
Now in Android
12
NPAPI
2
NPN
1
oauth
12
open source
1
OpenAI
1
opencensus
1
OpenGL
4
OpenID
3
OpenID Connect
4
OpenSocial
1
opensource
18
OpenTitan
1
Optimization
1
Page Experience
1
Password Manager
1
Payment
8
Payment Handler API
1
Payment Request API
1
PDF
1
PEM
33
people
2
People API
3
Performance
14
Performance budget
1
permissions
1
PersonFinder
1
Physical Web
3
Pi
1
Pixel
1
Place Picker
1
Platform Stability
1
Play Billing
2
Play Billing Library
2
Play Console
2
Play Store
1
Player Analytics
4
Playtime 2017
1
Policy
6
policy compliance
2
policy violations
2
Polymer
7
privacy
13
Privacy Sandbox
13
Progressive Web Apps
14
project hosting
1
Promise
1
Promo code
1
Protocol Buffers
1
PRPL
1
publicdata
1
Push API
1
Push Notification
6
PWA
3
Python
2
QUIC
2
QWIKLABS
3
RAIL
1
React
1
React Native
2
Realtime Database
9
Recap Live Japan 2019
3
reCaptcha
1
Redux
1
release
1
Remote Config
3
Remote Display API
1
Requirements
1
Resonance Audio
1
Rewarded Video Ads
2
Runtime Permission
1
Safe Browsing
3
safety
1
Sample Code
2
Santa Tracker
1
schema.org
1
secur
1
security
70
Service Worker
4
SHA-1
1
sketchup
1
SmartLock for Passwords
4
social
4
Social Good
1
Social Media
1
software development
1
SPDY
3
speak2tweet
1
Spreadsheet
3
SSR
1
stable release
1
startup
7
Storage
2
story
1
streetview
3
Study Jams
9
subscriptions
4
Swift
2
SwiftShader
1
Symantec
1
tapple
1
Task
4
Team Drive
1
techtalk
13
TensorFlow
41
TensorFlow Federated
1
TensorFlow Lite
8
TensorFlow Object Detection API
1
TensorFlow Probability
2
TensorFlow.js
4
test
4
Test Lab
6
TF Certificate
2
TFX
1
TLS
1
ToS
1
trace
1
Transliteration
1
Trusted Web Activity
1
Twitter
1
Udacity
20
Unity
3
UX
5
V8
3
VP9
1
VR
11
Vulkan
2
Watch Face
2
wave
2
Wear OS
3
Weave
1
Web
34
Web Animations
1
Web Components
7
Web Manifest
1
Web Packaging
3
Web Stories
2
Web Story
3
Web Vitals
5
web.dev
1
WebAssembly
5
WebGL
1
WebM
1
WebMusic
5
WebRTC
1
WebView
1
Women Techmakers Scholars Program
1
Wordpress
1
WTM
6
Xcode
1
YouTube
17
YouTube API
1
インタビュー
1
コードサンプル
1
プライバシー
1
機械学習
3
言論の自由
1
節電
3
定期購入
1
東日本大震災
9
日本語入力
41
ブログ アーカイブ
2021
1
2020
12
11
10
9
8
7
6
5
4
3
2
1
2019
12
11
10
9
8
7
6
5
4
3
2
1
2018
12
11
10
9
8
7
6
5
4
3
2
1
2017
12
11
10
9
8
7
6
5
4
3
2
1
2016
12
11
10
9
8
7
6
5
4
3
2
1
2015
12
11
10
9
8
7
6
5
4
3
2
2014
12
11
10
9
8
7
6
5
4
3
2
1
2013
12
11
10
9
8
7
6
5
4
3
2
1
2012
12
11
10
9
8
7
6
5
4
3
2
1
2011
12
11
10
9
8
7
6
5
4
3
2
1
2010
12
11
Feed
Follow @googledevjp
"プロダクトに関するご意見は
プロダクトフォーラム
にお願いします"