안드로이드는 모바일 디바이스를 위한 소프트웨어Stack 입니다.
안드로이드 SDK를 통해 Java 언어를 이용하여 Application을 개발합니다.
Android Architecture
Applications
안드로이드는 E-mail, SMS, Calender, browser, Contacts 등과 같은 Application을 탑재하고 있습니다. 모든 Application은 Java 로 작성되어있습니다.
- 모든 Application은 가상머신에 대한 자신의 인스턴스를 가지고, 자신의 프로세스 내에서 실행된다.
- 모든 Application은 동등한 입장으로 실행된다. 즉, 기본 시스템 대신, 직접만든 시스템을 초기화면으로 사용가능하다.
Applications Framework
말 그대로 번역하면 "사용할 수 있는 틀"이다. 기존에 만들어진 틀을 이용해 개발자들이 보다 편리하고 고성능의 Application을 개발할 수 있도록 지원하는 역할을 한다.
- 개발자들을 위한 자원들이다. 이것을 통해 모든 Application을 개발할 수 있다.
- User를 위한 UI 제작
- data에 접근하기 위한 Content Provider가 있다.
- 알림, 라이프사이클 관리
- 여러가지 보안제약이 따른다.
Libraris
C,C++로 코딩되어 있고, 각 회사마다 사용되는 하드웨어를 지원하기 위해 업체에서 미리 스마트폰에 설치된다.
- 라이브러리는 Applications Framework를 통해 개발자들에게 제공된다
- 안드로이드는 임베디드 리눅스 기반의 디바이스에 적합하도록 표준 C시스템 라이브러리를 제공한다.
- 미디어 라이브러리를 통해 여러가지 오디오, 비디오 포맷을 제공한다.
- 그외 SurfaceManager, LibWebCore, SQLite 등이 있다.
Android Runtime
Java 프로그래밍 언어의 핵심 라이브러리에서 사용가능한 기능들을 포함하고 있다. Core Library를 통해 Java의 핵심 라이브러리 기능을 사용할 수 있다.
* Runtime : 컴퓨터 프로그램이 실행되고 있는 동안의 동작을 말한다.
- Dalvik VM
- Java 컴파일된 클래스 실행
- Dalvik 가상머신의 실행 파일인 dex 포맷을 사용한다.
- Threading과 Low-level 메모리 관리는 Linux Kernel에 의존한다.
- Core Library
- Android에서 Java 프로그래밍을 위한 핵심 라이브러리이다.
Linux Kernel
안드로이드는 보안, 메모리 관리, 프로세스 관리, 네트워킹 등의 시스템 서비스를 제공한다.
즉, 부팅, 파일시스템, 하드웨어 제어를 위한 디바이스 드라이버 등이 여기에 해당한다.
'Programming > Android' 카테고리의 다른 글
[Android]Table Scroll(Vertical, Horizontal 스크롤 동시에 하기) (1) | 2012.04.20 |
---|---|
[Manifest]android SD카드에 어플 설치하기 (0) | 2012.03.21 |
cryptandroid (0) | 2011.11.27 |
안드로이드 ImageView Scale 설정 (0) | 2011.08.25 |
TextView에서 터치된 영역의 Offset 가져오기 (0) | 2011.08.24 |