반응형
Notice
Recent Posts
Recent Comments
관리 메뉴

꿈꾸는 사람.

ART (Android RunTIme)란 Kitkat의 새로운 런타임. 본문

IT/Android

ART (Android RunTIme)란 Kitkat의 새로운 런타임.

현무랑 니니 2013. 11. 21. 16:58
반응형

구글 안드로이드 4.4 Kitkat이 적용된 넥서스 5이 국내에 출시되었다.

Kitkat의 주요 기능에 대한 설명은 이전 글 [링크]를 참고하면 되고 앱을 실행하는 runtime에 대한 큰 변화가 있어 이를 작성한다.


1. Kitkat의 runtime

구글 안드로이드 4.4 Kitkat의 큰 변화 중 하나는 runtime으로 ART (Android RunTIme)를 지원하는 것이다.

넥서스 5의 설정을 확인하면 아래와 같이 두 개의 runtime 중 하나를 선택할 수 있다.

안드로이드 앱 개발에 자바를 선택하면서 자바 앱을 실행하는 가상 머신의 하나로 채택한 것이 Dalvik VM이다.

앱을 실행할 때 Dalvik은 앱 코드를 네이티브 기계어 코드로 변환해야 한다.

사용자가 앱을 실행할 때마다 이 변환 절차가 필요한데 이를 JIT(just-in-time) 컴파일이라고 한다.

이런 과정은 성능과 배터리에 나쁜 영향을 준다.

더구나 애플의 iOS와 비교하여 많은 메모리 용량과 빠른 AP를 가진 안드로이드 계열 폰들이 성능에서도 뒤지는 요인이 되고 있다.

이를 개선하기 위해 구글이 준비한 것이 ART ()이다.


2. ART의 개요

ART는 Android RunTime이며 Dalvik과는 근본적으로 다른 방법으로 앱을 실행한다.

위에서 언급한 것처럼 Dalvik은 앱 코드인 bytecode를 기계어 코드로 변환하는 JIT 컴파일러에 의존한다.

이 방식은 성능 면에서는 약점이지만 앱이 다양한 하드웨어나 아키텍쳐에서 실행할 수 있는 장점이 있다.


ART는 앱이 설치될 때 바이트 코드에서 기계어 코드로 컴파일하는 절차 대신 완전히 네이티브 앱으로 변환한다.

이 과정을 Ahead-Of-Time (AOT) 컴파일이라 한다.

즉, JIT 컴파일을 AOT 컴파일로 바뀐 것이다.

 이것은 새로운 가상 머신을 생성하고 인터프리트 된 코드 실행 시간을 제거하여 시작 시간을 크게 단축시키고 지속적인 실행 시간이 빨라진다.


3. ART의 사용 여부

ART는 완성된 것이 아니고 실험 단계이므로 현재는 사용자 보다는 개발자에게 필요한 기능이다.

런타임을 ART로 변경하면 시스템이 불안정해지거나 서드 파티 앱이 동작하지 않을 수 있다.


반응형
Comments