'2017/02/18'에 해당되는 글 3건

  1. 2017.02.18 [android framework] 개요
반응형

Android 는 모바일 플랫폼이다. 안드로이드는 운영체제, 미들웨어와 핵심 어플리케이션이 포함된, 모바일 디바이스 개발에 적합한 소프트웨어 스택이다. 모바일 디바이스용 어플리케이션을 쉽게 제작하기 위한 소프트웨어 프레임워크를 제공하는 것이다.


 Android는 다음과 같은 Architecture를 가지고 있다.

 1) Linux Kernel : 리눅스 커널과 드라이버

 2) BIONIC : 안드로이드 표준 C 라이브러리

 3) HAL(Hardware Abstraction Layer) : Audio, Bluetooth, Camera, GPS 등에 대한 추상화 계층

 4) Native Library : Native 라이브러리

 5) Dalvik : 안드로이드 자바 가상 머신

 6) Application Framework : Java Application 을 위한 Framework


 파란색 부분이 Java로 초록색 부분은 C/C++로 구성되어 있다. 


 Android 의 부팅 과정은 다음과 같다.

Step으로 보면 다음과 같다.

1) 리눅스 커널이 부팅되면서 마지막에 init 프로세스를 호출한다

2) init 은 각종 데몬(usbd:USB데몬, adbd:안드로이드 디버그 데몬, debuggerd:디버그 시스템, rild: 무선인터페이스 레이어 데몬 등) , 컨텍스트 매니저, 미디어 서버, Zygote 등을 실행한다

3) 컨텍스트 매니저는 등록된 시스템 서비스들에 대한 핸들을 관리하는 프로세스이다. 안드로이드는 부팅 과정에서 서비스 관리자(Service Manager)라고 부르는 데몬 프로세스를 컨텍스트 관리자로 등록한다. 이 서비스 관리자는 응용 프로그램들이 시스템 서비스들을 찾도록 돕는 것이다. 컨텍스트 매니저는 IPC 드라이버의 전역 변수로 유지되며 IPC 드라이버의 인터페이스 핸들 값이 0인 요청이 모두 컨텍스트 매니저에게 가게 된다.

4) 미디어 서버는 Surface Flinger, Audio Flinger를 가지고 있으며 미디어 관련 처리를 위한 Native 서비스를 제공한다.

5) Zygote는 애플리케이션 로딩 시간을 단축하기 위한 프로세스이다.

6) 시스템 서버는 자바 시스템 서비스 제공을 위하여 Zygote에서 포크되어 실행되는 프로세스 들이다.

반응형
Posted by alias
,