안드로이드는 무엇인가?
01 안드로이드(Android)의 개념
안드로이드는 모바일 디바이스를 위한 플랫폼이다.
안드로이드의 플랫 폼은 운영체제, 미들웨어, 키(key) 어플리케이션들을 포함한 모바일 디바이스를 위한 소프트웨어 집합이다. 개발자들은 안드로이드 SDK를 사용하면 안드로이드폰에서 동작하는 애플리케이션을 만들 수 있다.
애플리케이션들은 자바 프로그래밍 언어로 작성해야 하고, Dalvik 위에서 실행된다.
Dalvik은 구글이 만든 가상 머신인데, 리눅스 커널의 최상위 영역에서 동작한다.
02 안드로이드의 특징
1. 애플리케이션 프레임 워크 제공
프로그래밍 할 수 있는 프레임워크(frame work)를 제공한다.
2. Dalvik 가상 머신
일종의 가상 머신으로, 모바일 디바이스를 위해 최적화 되었다.
3. 최적화된 그래픽
기본적으로 2D 그래픽 라이브러리를 제공한다. 또 OpenGL스펙에 기반한 3D 그래픽 라이브러리도 제공
4. SQLite
데이터를 저장하고 검색하기 위해 SQLite를 사용한다
5. 미디어 지원
일반적인 오디오, 비디오 그리고 이미지 포멧들을 지원한다.
지원 가능한 포멧 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF등이다.
6. GSM 테크놀로지, 블루투스, EDGE, 3G, WiFi, 카메라, GPS, 나침반, 가속도계 지원
에뮬레이터에서 테스트하기 힘들지만, 실제 안드로이드폰에서 지원 가능하다.
7 풍부한 개발 환경
디바이스 에뮬레이터, 디버깅 도구, 메모리 및 성능 프로파일링, Eclipse IDE를 위한 플러그인 제공
8 통합 브라우저 제공
03 안드로이드 아키텍쳐
1 애플리케이션(Application)
안드로이드에서는 이메일을 확인할 수 있는 클라이언트, SMS 프로그램, 켈린더, 지도, 브라우저, 주소록
등 을 키 애플리케이션으로 제공한다. 모든 애플리케이션은 자바 언어로 작성되었다.
2. 애플리케이션 프레임워크 (Application Framework)
프레임워크를 사용하여 자신 만의 애플리케이션을 개발할 수 있다.
3. 라이브러리 (Library)
안드로이드 시스템의 라이브러리들은 애플리케이션 프레임워크를 통해 개발자 들에게 제공된다.
-1. 시스템 C 라이브러리 : 임베디드 리눅스 기반의 디바이스를 통해 튜닝된 표준 라이브러리
-2. 미디어 라이브러리 : 이미지와 오디오, 비디오 등의 다양한 포맷들의 재생 및 녹화 지원
-3. Surface 관리자 : 디스플레이 시스템 접근을 지원하는 라이브러리
-4. LibWebCore : 최신 웹 브라우저이다.
-5. SGL : 2D 그래픽 엔진이다.
-6. 3D 라이브러리 : OpenGL에 기반한 라이브러리
-7. FreeType : 비트맵 또는 벡터 폰트 렌더링 지원
-8. SQLite : 강력하며 경량화된 관계형 데이터베이스 엔진
4. 안드로이드 런타임 (Android Runtime)
자바의 핵심 라이브러리의 기능을 대부분 포함하며 가상 머신에 자신의 인스턴스를 가지고 동작한다.
Dalvik에서는 최소 메모리만 사용하도록 최적화된 (.dex) 포맷의 파일을 실행한다.
5. 리눅스 커널
안드로이드 플랫폼은 보안, 메모리 관리, 프로세스 관리, 네트워크 관리, 드라이버 모델 등의 핵심 서비스
리눅스에 기초하여 구현되었다. 리눅스 커널은 하드웨어와 나머지 소프트웨어 스택 간의 추상화된 계층
역할을 한다.
'Android' 카테고리의 다른 글
Google Map Fragment 만들기 (5) | 2016.02.12 |
---|---|
GOOGLE MAP API 빌드 오류에 대한 해결법 (1) | 2016.02.12 |
안드로이드 이미지(카메라, 앨범) 가져와 ImageView 보이기 (14) | 2016.02.02 |
Google Map API App 및 Activity 생성 (23) | 2016.01.26 |
Google Maps API Andriod (0) | 2016.01.26 |