안드로이드 아키텍처,아키텍쳐,구조 (Android architecture,structure)
2011. 4. 3. 15:58ㆍ카테고리 없음
@ 리눅스 커널 (Linux Kernel ) - 최하위 계층
- 백그라운드 스레드, 메모리 관리, 보안, 디바이스 드라이버등의 저수준 관리 기능을 담당한다.
- 안드로이드가 리눅스를 채용한 주된 이유는 공개 운영체제라는 이유도 있지만 무엇보다 디바이스 드라이버의 지원이 광범위하기 때문이다.
@ 시스템 라이브러리 (System Libraries)
- 응용 프로그램들이 공통적으로 사용하는 라이브러리
- 라이브러리는 장비의 전반적인 속도를 결정하는 중요한 요소여서 자바가 아닌 C로 작성되어 있다.
- BSD 파생 libc, 2D그래픽을 위한 suface manager 및 SGL, 3D그래픽을 위한 OpenGL, 벡터 폰트 출력을 위한 FreeType, 오디오, 비디오 재생을 위한 미디어 지원, 데이터베이스 지원을 위한 SQLite, 인터넷 브라우징을 위한 SSL과 크롬, 사파리에 채용된 WebKit
@ 런타임 (Run-Time)
- 달빅 가상 머신(Dalvik Virtual Machine)과 자바코어 라이브러리(Java Core Librarie)로 구성된다.
- 모바일 환경에 최적화된 달빅 가상머신을 사용한다.
- 각 프로세스 별로 별도의 달빅 가상머신이 할당되므로 안정성이 높고 메모리 사용량을 줄여 복수개의 가상 머신도 효율적으로 동작하도록 설계되었다.
@ 프레임 워크 (Frame Work)
- 안드로이드의 API
- 응용 프로그램은 하위의 커널이나 시스템 라이브러리를 직접적으로 호출할 수 없으며 API를 통해서 기능을 요청해야 한다.
- API는 하드웨어 액세스를 추상화하며 UI제작에 필요한 위젯을 정의하고 시스템 라이브러리와 통신할 수 있는 래퍼를 제공한다.
@ 응용 프로그램 (Application)
- 사용자를 직접적으로 대면하는 응용 프로그램
- 응용 프로그램은 프레임워크를 통해 하위의 커널이나 시스템 라이브러리를 사용한다.