What is Android?

Android Platform Stack
Android 하위 계층에는
Linux Kernel이 존재한다. Android는 Driver Model, Memory Management, Process Management, Security 및 Networking Stack 등 Linux Kernel 2.6.24를 사용한다. 하지만 일부 기본 기능은 포함되지 않으며 안드로이드를 위한 알람이나 커널 디버거 등이 추가되었다.
Linux Kernel 위에는
Libraries들이다. 다양한 Library가 있는데 이것들 대부분은 오픈 소스 또는 새로 제작된 C/C++ Negative 코드로 작성되어 있다. SQLite나 FreeType, Webkit, SSL, OpenGL | ES 등은 오픈소스로써 안드로이드 SW Stack에 통합되어 있다. 그 외에 Surface Manager나 SGL처럼 안드로이드에서의 그래픽 처리를 위해 추가된 것과 libc의 경우는 임베디드 장비에 최적화되어 재작성되어 있다.
- OpenGL : OpenGL ES 1.0 API를 기반으로 3D 그래픽을 지원하기 위한 라이브러리
- FreeType : 비트맵과 벡터 폰트 렌더링을 지원
- SGL : 2D 그래픽을 제공하기 위해 사용되는 코어 라이브러리
libc : 임베디드 리눅스 기반 기기에 최적화된 표준 C 라이브러리
- SQLite : 경량의 관계형 DB 엔진
- SSL : Secure Sockets Layer cryptographic 프로토콜 
- Surface Manager, Media Library...
다음 부분은
Android Runtime으로 Dalvik VM과 Core Libraries로 구성된다. Dalvik VM에 관한 Presentation 동영상은 여기에서 확인할 수 있다. Dalvik VM은 Interpreter VM으로 적은 메모리에서 최적화되어 있으며 레지스터 기반이다. 모든 Android App.은 자신의 프로세스에서 Dalvik VM의 인스턴스와 함게 동작한다. 즉, 하나의 Process에 하나의 VM 인스턴스를 생성된다. Dalvik VM은 Thread와 Low-level Memory Management와 같은 기초적인 기능에 대하여 Linux Kernel에 의존적이다. Core Libraries는 Java2SE라고 보면 된다고 한다.
다음 계층은 개발자들이 많이 사용하게 될 부분이
Application Framework이다. 이 계층은 일종의 System Service나 Manager로 Package의 자원을 관리한다거나 Device의 위치를 알려주는 등 다양한 서비스를 제공한다.
- Activity Manager : Activity의 Life Cycle을 관리
- Views : Activity에 대한 사용자 인터페이스를 구성
- Notification Manager : User에게 시그널링을 위한 일관성(consistent), 비간섭(non-intrusive) 메카니즘 제공
- Content Provider : 어플리케이션 사이에 데이터를 공유
- Resource Manager, Package Manager ....
마지막으로
Applicatinos이다. 폰의 첫 화면이나 주소록, 전화, 브라우저 등 플랫폼에 내장된 App.는 통신사 및 개발자가 모두 사용할 수 있는 인터페이스를 제공하게 되어 누구든지 사용 가능하다.

※ 결국 지금 당장은 Java를 통해 개발할 수 있지만 Library를 수정하거나 추가하려면 C/C++를 사용해야 한다. 

by 좋은게좋아 | 2009/06/30 19:42 | Android | 트랙백 | 덧글(0)

트랙백 주소 : http://pitfall.egloos.com/tb/2424541
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지 다음 페이지 ▶