Google은 Nexus 5 (Android 4.4 KitKat)와 함께 앱을 실행하기 위해 두 개의 런타임을 제공했습니다.
최종 사용자에 대한 Dalvik과 ART의 차이점은 무엇입니까? 최종 사용자는 이로 인해 어떻게 영향을받을 수 있습니까? 새로운 ART 런타임을 선택해야하는 특별한 이유가 있습니까?
Google은 Nexus 5 (Android 4.4 KitKat)와 함께 앱을 실행하기 위해 두 개의 런타임을 제공했습니다.
최종 사용자에 대한 Dalvik과 ART의 차이점은 무엇입니까? 최종 사용자는 이로 인해 어떻게 영향을받을 수 있습니까? 새로운 ART 런타임을 선택해야하는 특별한 이유가 있습니까?
답변:
Dalvik VM (Virtual Machine)은 Google의 Java VM 버전 (앱이 실행되는)입니다. VM은 앱을 실제 하드웨어 및 기타 앱과 분리하여 독립적으로 유지합니다. 그러나 이것이 작동하려면 Dalvik은 소위 바이트 코드 (가상 머신 용으로 설계)를 기본 머신 코드로 변환해야합니다. 바이트 코드에서 네이티브 코드로 변환 할 때 발생하는 성능 저하를 최소화하기 위해 JIT (Just-In-Time) 컴파일 프로세스가 수행되어 핫 (즉, 자주 사용되는) 바이트 코드를 네이티브 코드로 변환합니다. 1
ART (Android Runtime)는 AOT (Ahead-Of-Time) 컴파일을 사용하는 Dalvik을 대체합니다. 즉, 앱을 실행하기 전에 실행 준비 상태로 컴파일됩니다. 이는 일반적으로 앱 설치시 수행되어 훨씬 빠르고 원활하게 시작하고 사용하는 프로세스를 만듭니다. 그리고 이것은 컴파일이 한 번만 수행됨을 의미하기 때문에 배터리 수명도 향상 될 수 있습니다.
성능 및 배터리 수명 측면에서 ART가 더 좋으면 사용을 시작해야합니까?
아니요. 그렇게하면 타사 앱이 손상 될 수 있습니다. Google은 개발자가 앱을 테스트 할 수 있도록이 ART 미리보기를 Android 4.4와 함께 제공했습니다.
참고 : ART에 대한 Google의 접근 방식은 iOS를 능가하는 것입니다 (iOS 앱은 기본이므로 저사양 하드웨어 사양에서도 더 잘 수행됩니다). 나는 그것이 어디로 향하고 있는지 모르겠습니다 ... OEM이 하나 또는 둘 다를 사용하여 장치를 자유롭게 구축 할 수 있음을 참조하십시오 . 최종 버전은 대부분의 앱에 영향을 미치지 않지만 100 % 크로스 플랫폼에는 영향을 미치지 않습니다.
1 JIT는 Android 2.2에서 Dalvik에 추가되었습니다.