안드로이드 런타임

Android Runtime
안드로이드 런타임
개발자구글
저장소android.googlesource.com/platform/art/
기입처C, C++
운영 체제안드로이드
유형런타임 환경
면허증.Apache 라이센스 2.0[1]
웹 사이트source.android.com/devices/tech/dalvik/art.html Edit this on Wikidata

Android Runtime(ART)은 Android 운영 체제에서 사용되는 응용 프로그램 런타임 환경입니다.원래 Android에 의해 사용된 프로세스 가상 머신인 Dalvik을 대체하여 ART는 애플리케이션의 바이트 코드를 나중에 장치의 런타임 [2]환경에 의해 실행되는 네이티브 명령어변환합니다.

개요

Dalvik 아키텍처와 ART 아키텍처의 비교

Android 2.2 "Froyo"는 Dalvik에 트레이스 기반 JIT(Just-in-Time) 컴파일을 도입하여 애플리케이션이 실행될 때마다 지속적으로 프로파일링을 수행하고 자주 실행되는 짧은 세그먼트를 네이티브 머신 코드로 동적으로 컴파일함으로써 애플리케이션 실행을 최적화했습니다.Dalvik이 애플리케이션의 바이트 코드의 나머지 부분을 해석하는 동안, "추적"이라고 불리는 짧은 바이트 코드 세그먼트의 네이티브 실행은 상당한 성능 [3][4]향상을 제공합니다.

달빅과 달리 ART는 설치 시 어플리케이션 전체를 네이티브 머신 코드로 컴파일하여 AOT(Aread-of-Time) 컴파일을 사용합니다.ART는 달빅의 해석과 트레이스 기반의 JIT 컴파일을 없애 전체적인 실행 효율을 높이고 전력 소비를 줄여 모바일 기기의 배터리 자율성을 향상시켰다.동시에 ART를 통해 애플리케이션 실행 속도가 빨라지고 메모리 할당 및 가비지 수집(GC) 메커니즘이 개선되며 새로운 애플리케이션 디버깅 기능 및 [2][5][6]보다 정확한 애플리케이션 고급 프로파일링이 실현됩니다.

하위 호환성을 유지하기 위해 ART는 APK 파일의 일부로 표준 .dex 파일을 통해 제공되는 Dalvik과 동일한 입력 바이트 코드를 사용하는 반면 .odex 파일은 실행 가능링크 가능 형식(ELF) 실행 파일로 대체됩니다.ART의 온디바이스를 사용하여 응용 프로그램을 컴파일하면dex2oat 유틸리티는 컴파일된 ELF 실행 파일에서만 실행됩니다.그 결과 ART는 Dalvik의 해석 및 트레이스 기반 JIT 컴파일과 관련된 다양한 애플리케이션 실행 오버헤드를 제거합니다.ART의 단점은 애플리케이션 설치 시 컴파일에 추가 시간이 필요하며 컴파일된 [2][5][6]코드를 저장하기 위해 애플리케이션이 차지하는 세컨더리 스토리지(일반적으로 플래시 메모리)가 약간 더 많다는 것입니다.

Android 4.4 "KitKat"은 대체 런타임 환경으로서 달빅을 기본 가상 [7][8]머신으로 유지하는 것을 포함한 ART의 기술 미리 보기를 제공했습니다.그 이후의 주요 안드로이드 릴리스인 안드로이드 5.0 "롤리팝"에서 달빅은 완전히 ART로 대체되었다.

Android 7.0 "누가"는 Java 런타임 환경단종된 Apache Harmony에서 OpenJDK로 전환하여 코드 프로파일링을 갖춘 JIT 컴파일러를 ART에 도입하여 안드로이드 앱의 실행 [9]시 성능을 지속적으로 향상시킵니다.JIT 컴파일러는 현재 ART의 선행 컴파일러를 보완하여 런타임 성능을 향상시키고 일부 [8][10]앱만 컴파일하여 스토리지 공간을 절약합니다.

「 」를 참조해 주세요.

  • Android 소프트웨어 개발 – Android 응용 프로그램 제작에 사용되는 다양한 개념 및 소프트웨어 개발 유틸리티
  • Android 버전 이력– Android 릴리스의 이력 및 설명 (주로 공식 API 레벨별로 표시)
  • 애플리케이션 가상화 소프트웨어 비교– 다양한 휴대용 및 스크립트 언어 가상 머신
  • 가상 머신 – 구현된 기능의 정도가 다른 특정 컴퓨터 시스템의 에뮬레이션

레퍼런스

  1. ^ "NOTICE - platform/art - Git at Google". Retrieved June 25, 2021.
  2. ^ a b c Andrei Frumusanu (July 1, 2014). "A Closer Look at Android RunTime (ART) in Android L". AnandTech. Retrieved July 5, 2014.
  3. ^ Ben Cheng; Bill Buzbee (May 2010). "A JIT Compiler for Android's Dalvik VM" (PDF). android-app-developer.co.uk. Google. pp. 5–14. Archived from the original (PDF) on November 6, 2015. Retrieved March 18, 2015.
  4. ^ Phil Nickinson (May 26, 2010). "Google Android developer explains more about Dalvik and the JIT in Froyo". androidcentral.com. Retrieved July 8, 2014.
  5. ^ a b "Android Developers: ART and Dalvik". source.android.com. March 9, 2015. Retrieved March 18, 2015.
  6. ^ a b "Android Developers: Configuring ART – How ART works". source.android.com. March 9, 2015. Retrieved March 18, 2015.
  7. ^ Sean Buckley (November 6, 2013). "'ART' experiment in Android KitKat improves battery life and speeds up apps". Engadget. Retrieved July 5, 2014.
  8. ^ a b Daniel P. (November 7, 2013). "Experimental Google ART runtime in Android KitKat can bring twice faster app executions". phonearena.com. Archived from the original on July 7, 2014. Retrieved July 5, 2014.
  9. ^ "Android 7.0 for Developers". Android Developers. Retrieved March 22, 2021.
  10. ^ "Implementing ART Just-In-Time (JIT) Compiler". source.android.com. January 22, 2017. Retrieved January 22, 2017.

외부 링크