개발/[Android]
[Android] Dalvik & ART
바켱서
2021. 6. 8. 18:03
Dalvik, ART 가 나온 배경
일반적인 컴파일 언어는 CPU의 아키텍쳐와 플랫폼의 환경에 맞추어 기계어로 번역된다.
한마디로 사람이 작성한 언어를 CPU가 알아 볼 수 있는 언어로 번역하는 것이다.
하지만 자바의 경우, 한가지 CPU의 아키텍쳐나 환경에 맞추는 것이 아닌 바이트코드라는 것으로 컴파일 되며, 이를 실행하기 위해 자바 가상 머신이 필요하다.
자바는 바이트코드만으로 여러가지 아키텍쳐나 플랫폼에서 작동할 수 있도록 하는 것이 목표이기 때문이다.
자바 가상 머신인 JVM을 사용할 수 있지만 라이선스 문제로 구글에서 Dalvik VM을 따로 개발해서 안드로이드에 넣었다.
현재 Android5.0(API 21) 이상에서는 ART(Android Runtime)이 기본 런타임 환경
Dalvik VS ART
가장 큰 차이는 컴파일 방식이다.
Dalvik : JIT(Just-In-Time) 방식을 사용
ART: AOT(Ahead-Of-Time) 방식을 사용 _ Android 7.0 부터는 AOT+JIT 조합
JIT(Just-In-Time) VS AOT(Ahead-Of-Time)
JIT (Just-In-Time)
- 앱 실행 시 컴파일
- 설치 시 컴파일 하지 않기 때문에 AOT보다 설치 속도 빠르다.
- 실행 시 컴파일 하기 때문에 AOT에 비해 실행 속도 느림
- 용량이 작다.
AOT(Ahead-Of-Time)
- 앱 설치 시 컴파일
- 설치 시 컴파일 하기 때문에 JIT보다 설치 속도 느리다.
- 실행 시 컴파일 하지 않기 때문에 JIT에 비해 실행 속도 빠름
- 용량이 크다. ( 미리 컴파일하여 가지고 있기 때문에 )
출처: https://duzi077.tistory.com/147
[https://brunch.co.kr/@mystoryg/81](https://brunch.co.kr/@mystoryg/81)