본문 바로가기
대학/안드로이드(코틀린) 정리

안드로이드 실행 구조

by JJO.A 2022. 10. 21.
  • 리눅스 커널(Linux Kernel) : 안드로이드는 리눅스에 기반을 둔 오픈소스 소프트웨어 스택이다.
  • 하드웨어 추상화 레이어(hardware abstraction layer, HAL) : 하드웨어의 추상화 계층, 상위의 자바 API 프레임워크에서 하드웨어 기능을 이용할 수 있게 표준 인터페이스를 제공
  • 안드로이드 런타임(Android runtime, ART) : 앱을 실행하는 역할, 기존에는 Dalvik이 안드로이드 앱을 실행 하였지만 안드로이드 5.0버전부터 ART로 변경되었다.

 

앞서 안드로이드에서는 ART를 이용하여 앱을 실행한다고 하였다. 안드로이드에서는 자바 클래스(.class)를 그대로 실행하지 않고 DEX파일로 컴파일 수 ART에서 실행한다.

 

in JAVA

자바 소스(.java)     (컴파일)     자바 바이트코드(.class)  → 자바 가상 머신(JVM)

in Android

자바 소스(.java)     (컴파일)     자바 바이트코드(.class)     (DEX 컴파일)  →  DEX 바이트 코드(.dex)  → 안드로이드 런타임(ART)