안드로이드 시스템의 개요는 다음과같이 구성된다.
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, 등등 모든 기능을 제공해주는 부분
어플리케이션 단에서 중복해서 기능을 구현할필요없이 제공해주게 된다.
'공부 > Android Framework' 카테고리의 다른 글
[AOSP] Code Download 안드로이드 P 프리뷰 코드 다운로드 (0) | 2018.05.26 |
---|