안드로이드 플랫폼 위에서 개발을 하기에 앞서서 안드로이드가 무엇인지 대해서 간략하게나마 살펴보고자 합니다..
안드로이드는 흔히들 오픈소스라고 말하는데요, Open, Complete. Free한 플랫폼입니다. 아파치 2.0라이센스를 가지고 있구요 소스코드로 모든 사람이 빌드가 가능하며 Open Handset Alliance의 프로젝트입니다.
기본적으로 JAVA 프로그래밍 언어를 사용하며 어플리케이션의 빌드, 컴파일, Test 및 디버그를 할 수 있는 SDK를 제공 합니다.
안드로이드 소스: http://source.android.com/
이전 자료에서 안드로이드 플랫폼의 구성을 그림으로 요약하여 살펴봤는데요 그것을 바탕으로 조금 세부적으로 설명을 드리겠습니다.
안드로이드 플랫폼
1. 리눅스 커널
:linux 2.6.24기반. 일부 기본 기능이 삭제(GLIBC지원되지 않음.리눅스 유틸리티를 모두 포함하지는 않음.)
안드로이드를 위한 기능 추가: 알람, 안드로이드 공유 메모리, 커널 디버거 등등..
2. Binder
:어플리케이션들과 서비스들 사이의 IPC를 위한 드라이버임, 프로세스 내에 IPC를 처리가히 위한 쓰레드 풀 존재..
3. 네이티브 라이브러리
: 안드로이드 LIBC구현
-->BSD 라이센스, 작은 크기와 빠른 코드,아주빠른 pThread지원..
DB: SQLite
Rendering :Webkit(웹 브라우저를 구성하는데 필요한 어플리케이션 프레임 웍)
Media Framework: Packet Video Open core
2D/3D 그래픽 라이브러리 : open GL ES 기반
Hardware Abstraction Libraries: 안드로이드 동작을 위해 구현해야 하는 하드웨어 드라이버로 개발자가 구현해야 하는 API의 집합이며 제조사가 안드로ㅤㅇㅣㄷ 플랫폼 포팅을 위해 필요한 모든 콤포넌트라고 생각하시면 됩니다..^^:;
4. 안드로이드 런타임
:Dalvic Virtual Machine
: 인터프리터 virtual machine, 레지스터 기반, 적은 메모리에 최적화
여러개의 VM을 동시에 실행시키도록 디자인도어 있으며 프로세스 독립과 메모리 관리 쓰레드를 OS에 의존
5. 어플리케이션 프레임워크
: 엑티비티 매니저: 어플리케이션과 라이프 사이클 관리
패키지 매니저: 시스템에 로드된 어플과 관련된 정보 관리
윈도우 매니저: 모든 어플과 관련된 윈도우 관리
뷰 시스템: 어플리케이션 구성을 위한 위젯 제공
하드웨어 서비스 : 하드웨어 관련 API 접근 제공.(ex)블루투쓰,,텔레포니..)
[출처] Android Side - http://www.androidside.com/bbs/board.php?bo_table=B46&wr_id=5
No comments:
Post a Comment