아키텍처
리눅스 커널(운영체제의 핵심)
안드로이드가 리눅스를 채용한 주된 이유는 공개 운영체제라는 이유도 있지만 디바이스 드라이버의 지원이 광범위하기 때문
- 백그라운드 스레드, 메모리 관리, 보안, 디바이스 드라이버 등의 저수준 관리 기능을 담당
- 터치 스크린, 카메라, 무선 인터넷, 메모리, 키패드 등 대부분의 모바일 장비에 사용되는 부품의 드라이가 제공
하드웨어 추상레이어(HAL)
추상레이어는 주로 커널을 통해 안드로이드가 제공하는 드라이버를 제어하는 목적으로 사용.
- 표준화된 API를 제공하고 있을 뿐만 아니라 사용자 정의 컴포넌트를 추가할 수 있다.
라이브러리
장비의 전반적인 속도를 결정하는 중요한 요소. 라이브러리 대부분은 C언어로 작성되어 성능이 뛰어나고 충분한 테스트를 거쳐 신뢰성이 보장
- BSD 파생 libc라이브러리
- 2D 그래픽을 위한 서피스 관리자(Suface Manager) 및 SGL
- 3D 그래픽을 위한 OpenGL
- 백터 폰트 출력을 위한 FreeType
- 데이터베이스 지원을 위한 SQLite
- 인터넷 브라우징을 위한 SSL과 크롬, 사파리에 채용된 WebKit
안드로이드 런타임
달빅 가상 머신과 자바 코어 라이브러리로 구성. 자바 가상 머신이 아닌 모바일 환경에 최적화된 달빅(Dalvik) 가상 머신을 사용. 각 프로세스별로 별도의 달빅 가상 머신이 할당되므로 안정성이 높고 메모리 사용량을 줄여 임베디드 환경에 효율적으로 동작하도록 설계. 달빅은 자바 클레스로 바로 실행할 수 없으며 클래스 파일을 dex포맷으로 변환해야만 실행 가능
프레임워크(안드로이드 API)
응용프로그램은 하위의 커널이나 시스템 라이브러리를 직접적으로 호출할 수 없으면 API를 통해서 기능을 요쳥해야 한다. API는 하드웨어 엑세스를 추상화하여 UI 제작에 필요한 위젯을 정의하고 시스템 라이브러리와 통신.
- Activity Manager : 어플리케이션의 생명주기를 관장
- Window Manager : 윈도우의 모양이나 크기 등을 관리
- Content Manager : 어플리케이션이 다른 어플리케이션의 정보나 메시지를 공유하고 작업등을 요청
- View System : 리스트, 텍스트 박스, 버튼 및 다이얼로그 등 제작을 용이하게 하는 UI세트를 제공
- Notification Manager : 콜수신, 메시지수신, 배터리 부족, 시스템 상태 변화, 네트워크 시그널 등 이벤트 발생에 따라 상태바나 토스트와 같은 알람을 출력
- Package Manager : 패키지 설치, 제거 등을 지원하는 관리자
- Telephony Manager : 음성 및 영상통화, MMS/SMS, SIM/USIM관리
- Resource Manager : 애플리케이션에게 파일, 그래픽 등의 자원 할당하고 해제한다.
- Location Manager : 위치정보를 제공하는 기능을 담당한다.
Application (개발자가 만들어야 할 대상)
인터넷 브라우저, 바탕화면, 주소록 등 플랫폼과 함께 설치되는 애플릿과 게임, 유틸리티 등 기본적으로 제공되는 어플리케이션을 말한다.
----------------------------------------------------------------------------------------------------
BSD : Berkley Software Distribution 1997년 미국 캘리포니아 대학교 버클리에서 개발한 유닉스 계열의 컴퓨터 운영 체제.
----------------------------------------------------------------------------------------------------
연습문제
'스마트폰앱개발자(Android) > 제작,제어 이론' 카테고리의 다른 글
안드로이드 구성요소 및 어플리케이션 구조 (0) | 2012.11.28 |
---|---|
XML 레이아웃 (0) | 2012.11.28 |
XML 기본 문서 구조 (0) | 2012.11.28 |
안드로이드 개발 도구 (0) | 2012.11.28 |