본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[Android] 새로운 Dex Compiler 가 나온다네용

by 돼지왕 왕돼지 2017. 8. 13.
반응형


.class, .dex, Android, android stuido 3.0, bug report, bytecode, compile time, D8, d8 benchmarking, d8 compiler, d8 dex compiler, dex compiler, enabled8, file size, gradle, gradle property, javac, proguard, R8, [Android] 새로운 Dex Compiler 가 나온다네용, 기본 compiler, 벤치마킹, 성능 비교, 컴파일 시간, 파일 사이즈

-

이 글은 D8 이 출시되기 전에 쓰여진 글이라 현재는 deprecated doc 이라고 볼 수 있겠다.

D8 에 대한 이야기는 아래 링크를 참조하시길..



-

Android APK 를 만들 때 Javac 를 이용해서 bytecode 인 .class 를 만든 후

dex compiler 를 이용해서 bytecode 들을 .dex 로 만든다.



-

Android Studio 3.0 Beta 부터 "D8" 이라고 불리는 새로운 dex compiler 를 사용할 수 있다.


D8 은 compile time 도 줄였고, .dex 파일 사이즈도 줄였다..

Android 측에서 제공하는 자료에 따르면 Compile Time 은 약 30% 정도 줄었다. 


파일 사이즈는 약 5% 정도 줄었다. ( 사이즈는 큰 변화가 없구만.. )



-

D8 compiler 는 compile time 과 file size 줄이기라는 장점을 가지는데,

그 중, compile time 의 개선이 두드러져 보여서 적용할만 해 보인다.


적용방법은 gradle.properties 파일에 아래 문구를 넣어주면 된다.

android.enableD8 = true



-

Android 측에 따르면 현재(2017. 08. 11)  D8 의 정합성과 속도는 여러개의 앱에서 테스트 해보았으며 고무적인 성과를 냈다.

그리고 그 결과를 바탕으로 AOSP 를 빌드할 때 기본 dex compiler 로 D8 을 사용하도록 변경중에 있다고 한다.

현재 알려진 이슈는 없으며, 유저들이 사용하면서 발견하는 이슈는 대응 예정이라고 한다.



-

계획은 Android Studio 3.0 에서 몇달동안 bug report 를 수집하여 수정하고,

Android Studio 3.1 부터는 기본 dex compiler 로 채택 예정이라고 한다.



-

덧붙여  "R8" 이라는 proguard 를 대체하는 녀석도 개발중이라고 한다.



-

참고 자료

https://android-developers.googleblog.com/2017/08/next-generation-dex-compiler-now-in.html




끝!!




반응형

댓글