2.1 안드로이드의 아키텍처
안드로이드는 크게 자바로 구성된 요소(상부구조,사용자영역)와 C언어로 구성된 네이티브 코드 영역(하부구조,플랫폼영역)으로 나누어 진다.
- 응용프로그램 : 보통 우리가 개발하는 영역을 부른다.
- 프레임워크 : 디바이스 하드웨어와 위치정보 접근,백그라운드 서비스,알림등 많은 기능 사용,안드로이드 컴포넌트를 재사용하고 다른 APP을 배포할때 기능을 사용하기 쉽게 함
- 달빅 : 다양한 디바이스에서 효과적으로 실행,메모리를 적게 차지하게 최적화된 파일인 Dalvik Executable Format(.dex)의 파일을 실행시키고 가상머신은 'dx'도구로 .dex파일을 변환해 자바 컴파일러로 해당 클러스를 기동
- 라이브러리 : C/C++로 개발된 계층
- System C library : 임베디드 리눅스 기반 디바이스용
- Media Libraries : 오디오 비디오포맷 이미지 파일 재생 및 녹음
- Surface Manager :그래픽
- LibWebCore : 안드로이드 브라우저,웹뷰...웹브라우저엔진
- SGL : 2D그래픽
- 3D libraries
- FreeType : 비트맵과 벡터 폰트
- SQLite : DB엔진
- 하드웨어 추상화 계층(HAL) : 표준화되지 않은 라이브러리의 문제를 해결하기 위해 함수제공
- 리눅스커널 : 백그라운드 스레드, 메모리관리, 보안, 디바이스 드라이버등 담당, 추가로 바인더, 로우메모리 킬러,전원관리 등 추가
2.2 안드로이드의 구성요소
- 액티비티 : 사용자 인터페이스의 화면을 표현
- 서비스 : 백그라운드에서 오랫동안 수행되거나 사용자에게 UI를 제공하지 않는 컴포넌트 예) ,네트워크 전송, 미디어 플레이어,파일읽기 등의 작업
- 콘텐트 프로바이더(CP) : 애플리케이션 데이터 공유 집합을 관리 SQLite
- BR : 시스템의 상태를 체크하고 에벤트에 응답하는 컴포넌트
'프로그래밍 > 안드로이드' 카테고리의 다른 글
[안드로이드강좌]Hello World 앱 작성하기 (0) | 2013.11.12 |
---|---|
안드로이드 개발환경설정(2013년11월12일자 버전) (0) | 2013.11.12 |
[제1강] 1절.안드로이드의 특징과 장단점 (0) | 2013.09.16 |
AsyncTask vs Thread로의 Progressbar구현 비교 (0) | 2013.04.13 |
[안드로이드]AsyncTask에 대하여...(전체소스포함) (0) | 2013.04.13 |