안드로이드 시스템의 개요는 다음과같이 구성된다.


Linux Kernel


  • 안드로이드는 오픈소스인 리눅스 커널위에 가상머신을 띄우고 해당 가상머신에서 어플리케이션을 구동하는식으로 동작한다.

  • 눅스의 코드 중 필요한 부분만 이용하여 안드로이드 구동에 이용한다.



HAL

  

  • Hardware Abstraction Layer의 약자로 해석하면 하드웨어 추상화 계층이다. 

  • 리눅스 커널에 기본적인 드라이버가 있다면, 실제 제조사에선 해당부분에 드라이버의 기능을 구현한다. 



Native Libraries

  

  • Android 는 가상머신 위에서 돌아가지만 하위계층, 기본적인 베이스는 리눅스 커널위 에서 동작하게된다.

  • 리눅스 커널은 C언어로 제작되어있으며 핵심적인 프로그램들은 해당부분의 계층에서 제공되어진다.

  • 또한  GNU C 인 glibc가 아닌 안드로이드용 경량화 라이브러리 libc를 이용해서 필요한 부분만 이용한다. 



Android Runtime

  

  • 안드로이드용 가상머신. 달빅 방식과 ART 방식의 VM으로 앱을 구동할수있게한다.



Android Framework

  

  • 안드로이드에서 제공하는 기능들을 제공해주는 Layer

  • 흔하게 가져다쓰는 Notification, Sound, Camera, Message, 등등 모든 기능을 제공해주는 부분  

  • 어플리케이션 단에서 중복해서 기능을 구현할필요없이 제공해주게 된다.

+ Recent posts