-
안드로이드 런타임 (Android RunTime)Android 2019. 8. 10. 00:53반응형
안드로이드의 VM인 Android RunTime(ART) 에 관한 내용입니다.
ART 이전에 RunTime의 뜻을 알아보자
런타임(영어: runtime→실행시간)은 컴퓨터 과학에서 컴퓨터 프로그램이 실행되고 있는 동안의 동작을 말한다. "런타임"이라는 용어는 컴퓨터 언어 안에 쓰인 프로그램을 관리하기 위해 특정한 컴파일러나 가상 머신이 사용하는 기본 코드의 라이브러리나 프로그램을 가리키는 런타임 라이브러리라고도 일컫는다.
런타임 환경(영어: runtime environment)은 컴퓨터가 실행되는 동안 프로세스나 프로그램을 위한 소프트웨어 서비스를 제공하는 가상 머신의 상태이다. 운영 체제 자체에 속하는 경우도 있고 운영 체제에서 작동하는 소프트웨어를 뜻할 수도 있다.
위와 같이 위키백과에 작성되어있다.
ART는 안드로이드에서 사용되는 프로그램을 작동시키기 위한 가상머신이라고 보면 됩니다.
기존 안드로이드 4.4 까지는 Dalvik이라는 VM을 사용 하였으나 이후 에는 ART을 사용하게 되었습니다.
Dalvik은 Just-In-Time(JIT)이라는 컴파일러를 사용하여 Dex라는 중간 파일을 한번에 읽어 들이기 때문에
기존 Interpreter방식의 JVM 의 보다는 빠르게 실행되는 장점이 있으나
JIT로 컴파일시 CPU,Ram 등의 자원소모가 크기 때문에 베터리 소모량이 크다는 단점이 있습니다.
ART는 앱설치시 Dex 파일을 Ahead-Of-Time(AOT)라는 컴파일러로 완전하게 바이너리 코드로 변환하여
실행시 속도가 빠르고 JIT 컴파일러를 화면 중간중간 구동하지 않기 때문에 베터리 소모량도 Dalvik에 비해 줄어들게 된다.
단점은 최초 컴파일시 시간이 오래걸리며 실행파일의 크기가 커지게 됩니다.
p.s
- 틀린점이 있다면 지적해주시면 감사하겠습니다.
[참고링크]
https://source.android.com/devices/tech/dalvik
http://www.dreamy.pe.kr/zbxe/CodeClip/164835
https://developer.android.com/guide/practices/verifying-apps-art?hl=ko
https://android.googlesource.com/platform/art/+/master/runtime/gc/
https://ko.wikipedia.org/wiki/%EB%9F%B0%ED%83%80%EC%9E%84
https://aroundck.tistory.com/2599
반응형'Android' 카테고리의 다른 글
Android Paging Library (0) 2019.10.01 Android Dokka 사용법 (0) 2019.09.23 RecyclerView Header , Footer 생성 (0) 2019.09.17 안드로이드 스레드 (Android Thread) (0) 2019.08.21 Droid knights 2019 - 코루틴 안전! 이쁘게 코루틴 사용하는 방법은? (0) 2019.08.06 GitHub - AndroidCheat (0) 2019.07.14 Koin Sample Test code (0) 2019.07.14 MVC , MVP , MVVM (0) 2019.07.06