1. 안드로이드(Android)의 개요

 1-1. 안드로이드(Android)의 정의

  - 운영체제, 미들웨어, 중요 프로그램을 포함하는 임베디드 디바이스를 위한 SW스택

  - 2007년 11월 공개된 구글의 안드로이드(Android)는 휴대폰개발에 필요한 SW플랫폼 일체를 제공하는 공개SW

 

 1-2. 안드로이드(Android)의 특징

   - 리눅스 커널상에 네이티브 코드로 동작하는 라이브러리군과 ‘Dalvik가상머신(Dalvik VM, 비표준 JAVA Virtual Machine)’이라 부르는 독자 VM 실행환경, 그리고 그 위에서 동작하는 애플리케이션 프레임워크로 구성

  - 리눅스를 커널에 채택 : 새로운 하드웨어나 주변기기에 대응하기 쉬워짐

 

2. 안드로이드(Android)의 구성도, 구성요소

 2-1. 안드로이드(Android)의 구성도

 

 2-2.  안드로이드(Android)의 구성요소

구성요소 설명 상세구성요소
애플리케이션 (Applications) - Java로 작성
- Core Application을 탑재
- Android package(*.apk) 형태 :디바이스로 다운로드 하는 단위, Java code+data/resource files로 구성, aapt tool 을 사용하여 제작

Email, SMS Program, 

Calendar, Map, 

Browser , 

Contacts, Others

애플리케이션프레임워크 (Application Framework) - 개발자는 Core Application 에서 사용되는 Framework API 를 같이 사용할 수 있음
- Component 재사용이 용이하도록 설계
- Application 에서 만든 기능을 다른 Application에서 사용가능

Activity Manager , 

Window Manager , 

Content Providers , 

View System , 

Notification Manager, 

Package Manager , 

Telephony Manager , 

Resource Manager , 

Location Manager

라이브러리 (Libraries) - C/C++ 로 작성된 라이브러리
- 개발자에게 Application Framework를 통해 제공
- 라이브러리접근방법 : Binder를 이용한 프로세스간의 통신, JNI 를 이용한 접근

Surface Manager , 

Media Framework , 

SQLite, OpenGL ES, 

Free Type, 

Webkit, SGL, SSL, Libc

안드로이드런타임 (Android Runtime) - Core Library : JAVA 의 Core Library를 사용할 수 있도록 제공
- Dalvik VM(Virtual Machine) : 모든 안드로이드 애플리케이션은 Dalvik VM에 대한 자기자신의 인스턴스를 가지고 자신의 프로세스 내에서 동작

Core Libraries, 

Dalvik Virtual Machine

리눅스 커널 (Linux Kernel) - Linux version 2.6.x
- 추상 계층 제공: 하드웨어와 상위 소프트웨어 스택 사이
- Core System Service

Display Driver, Camera Driver, 

Bluetooth Driver, 

Flash Memory Driver, 

USB Driver, Keypad Driver, Wi-Fi Driver,

Audio Drivers, 

Power management

 

블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,