-
D8 이 이제 기본 dex compiler 이다.
(기존에는 DX 라는 녀석이 기본 dex compiler 였다.)
D8 은 더 빠르게 더 작은 .dex 파일을 만들어낸다.
D8 이 만든 dex 는 runtime performance 가 기존의 DX 가 만들어낸 것과 같거나 이상이다.
-
D8 은 Android Studio 3.1 부터 기본 compiler 가 되었다.
Android Studio 3.0 에서부터 이용할 수 있지만 당시는 optional 이었다.
( Android Studio 3.0 에서는 gradle.properties 에 android.enablerD8=true 를 넣어줘야 한다.)
-
Android Studio 3.1 이상을 사용하면서 만약 컴파일 이슈가 있다면, gradle.properties 아래것을 명시해주면 된다.
android.enableD8 = false
-
다음 단계를 통해 DX 를 deprecate 시킬 것이다
1. DX 를 studio 에서 이용할 수는 있고, critical issue 는 수정할 것이지만 새로운 기능이 추가되지 않는다. 6개월의 기간을 두고 서서히 진행할 계획이며, 이 기간에 D8 bug 들이 수정될 것이다. (issue 상태에 따라 6개월에 안 끝날 수 있다.)
2. DX to D8 에 대한 major regression 이 없이 6개월이 지나간다면.. 두번째 단계에 돌입한다.
이 phase 는 1년에 걸쳐 진행되며, 이 기간은 복잡한 project 들이 migration 이 잘 되는지를 보는 기간이다.
이 기간동안 DX 는 사용가능하지만, fully deprecate 로 치부하여 issue 가 나와도 수정하지 않는다.
3. 마지막 phase 는.. Android Studio 에서 DX 가 제거된다.
이 때는 DX 로 compile 하기 위해서는 legacy Android Gradle Plugin version 을 사용해야 한다.
-
Dex compile 은 APK 를 만드는 key step 이다.
이는 .class bytecode 를 .dex bytecode 로 변환하는 과정이다.
그리고 이는 app build 시 이루어지기 때문에 .dex file size, runtime performance 등에 영향을 미친다.
-
D8 다음에는 R8 을 계획하고 있다.
R8 은 Proguard 의 대체품으로, minification 과 optimization 을 책임진다.
R8 은 open source 로 공개되었지만 Android Gradle Plugin 에는 아직 통합되지 않았다.
https://android-developers.googleblog.com/2018/04/android-studio-switching-to-d8-dexer.html
https://android-developers.googleblog.com/2017/08/next-generation-dex-compiler-now-in.html
끝!
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[android] AAC 로 app 의 background, foreground 상태 알기 (1) | 2018.11.24 |
---|---|
[android] code 와 resource shrink 하자! (0) | 2018.11.23 |
[android] APK Signature Scheme v2 (0) | 2018.11.21 |
[android] Staged Rollout? (0) | 2018.10.12 |
[Android] ART vs. Dalvik (0) | 2018.10.11 |
댓글