- 전체
- android studio
- Android SDK
- Android NDK
- Android ADK
- Android Etc. Lib.
- Android dalvik VM
- Android 보안
- PhoneGap
- AOSP 개발
- MIT App Inventor 2
- kivy (python)
- ionic framework
- Kotlin (코틀린)
- React Native
Android dalvik VM ART(Android Runtime)
2015.08.05 21:49
ART(Android Runtime)
jvm
(JVM)
- 자바코드 -> 바이트 코드(.class) -------> native
- 스택머신
dalvik( android 4.4.4 이하 버전)
(dex tool) dexopt (JIT)
- 자바코드 -> 바이트코드(.class) --------> 바이트코드 (.dex) -------> .odex -> dalvik ---> native
- 레지스터 머신
- JIT 컴파일
ART( android 4.4.4 이후 버전)
(dex tool) dex2oat
- 자바코드 -> 바이트코드(.class) --------> 바이트코드 (.dex) -------> elf -> art -> native
- dalvik 머신 대체
- AOT(ahead-of-time) 컴파일
- 디바이스에서 dex2oat를 사용해서 한번만 컴파일되고 elf 파일로 실행됨
=> 이렇게 함으로써 JIT 컴파일을 포함한 다양한 오버헤드를 제거하여 실행이 빠르다는 장점
그러나 application이 설치 될 때 컴파일하기 때문에 설치 시간이 증가하고 어플의 크기가 증가함

JIT vs AOT
JIT
- application이 실행되는 동안 컴파일이 필수로 발생, 동적으로 컴파일, 실시간 컴파일 방식
- 자주 실행되는 메소드들은 분석될 수 있고 최적화로 변형되어 더 나은 코드와 더 높은 성능을 만들어냄
- 자주 실행되는 메소드를 규명하고 이러한 메소드를 컴파일하는데 시간이 걸리기 때문에
application은 성능이 피크데 도달하지 못하는 워밍업 기간을 가짐
AOT
- 프로그램이 실행되기 전에 자바 메소드용 네이티브 코드를 생성하여 프로그램이 실행될때 한번 직접 사용될수 있도록 함.
- 동적 클래스 로딩에서 클래스는 실행코드가 그 클래스를 참조하기 전까지는 로딩될 수 없음
추가 자료 정보 링크
http://www.ibm.com/developerworks/library/j-rtj2/
[출처] http://flslg.tistory.com/242
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 13 |
빠르게배우는 안드로이드 Fragment-4(Fragment간 에 데이터전달)
| 졸리운_곰 | 2020.09.19 | 155 |
| 12 |
빠르게배우는 안드로이드 Fragment-3(Fragment기초 실습)
| 졸리운_곰 | 2020.09.19 | 209 |
| 11 | 빠르게배우는 안드로이드 Fragment-2(Activity-> Fragment로 쉽게 변경) | 졸리운_곰 | 2020.09.19 | 236 |
| 10 |
빠르게배우는 안드로이드 Fragment -1 (배경)
| 졸리운_곰 | 2020.09.19 | 194 |
| 9 |
안드로이드 스튜디오 - 새로 생성한 Activity Class를 쉽게 Manifest에 등록하기.
| 졸리운_곰 | 2020.08.08 | 252 |
| 8 |
Android Studio Build시 failed linking references 해결방법
| 졸리운_곰 | 2020.05.05 | 648 |
| 7 |
[안드로이드 스튜디오] COULD NOT FIND COM.ANDROID.TOOLS.BUILD:GRADLE:3.0.0-BETA6
| 졸리운_곰 | 2020.05.05 | 125 |
| 6 |
Android Sync SQLite Database with Server using PHP and MySQL
| 졸리운_곰 | 2019.02.25 | 7762 |
| 5 |
안드로이드의 MVC, MVP, MVVM 종합 안내서
| 졸리운_곰 | 2019.01.06 | 370 |
| 4 |
Getting Started: WebView-based Applications for Web Developers
| 졸리운_곰 | 2018.09.03 | 410 |
| 3 |
Android Asynchronous Http Client
| 졸리운_곰 | 2017.07.03 | 709 |
| 2 |
android studio 2.3 의 안드로이드 레이아웃 배치 법 : Layout Editor로 UI 빌드
| 졸리운_곰 | 2017.03.09 | 534 |
| 1 |
Android Studio 2.2에서 Layout Preview 한글 깨짐 현상 해결 방법
| 졸리운_곰 | 2017.03.08 | 568 |

