티스토리 툴바


Android2010/05/25 23:45
안드로이드란?
단어 자체의 뜻은 인조인간이다. 사용자를 위해 여러가지 심부름을 대신해준다는 뜻이라고 한다.


안드로이드는 누가 만드는가?
안드로이드는 OHA(Open Handset Aliance) 주체로 개발되고 있는 모바일 운영체제이다.
- 명목상 OHA가 개발주체이지만 실직적으로는 구글이 리드하고 있다.


안드로이드의 구성 및 특징
커널은 리눅스에 기반한다. 공식적으로 Java를 사용하고, C로 개발할 수 있는 NDK도 발표되었지만 아직 일반적이지는 않다.
안드로이드 내부에는 많은 외부 라이브러리가 포함되어 있어 거의 별도의 외부 라이브러리를 사용할 필요가 없다.
플랫폼에 내장되어 있는 프로그램들과 사용자가 만들어서 탑재하게 되는 프로그램이 동일한 API를 사용하게 되므로,
원한다면 기본 제공되는 프로그램들도 사용자가 원하는 것으로 교체 가능하다. 플랫폼을 구성하는 요소들을 자유롭게 선택할 수 있다는 면에서 유연성이 뛰어나다.

안드로이드의 아키텍처
 Application
 Framework
 Activity 관리자, 윈도우 관리자, 뷰시스템, 패키지 관리자, 전화, 통지, 위치관리자. CP
 Library
 libc, Media, SQLite, Webkit, OpenGL
Runtime
Dalvik Virtual Machine 
 Linux Kernel
 Device Driver, 전원관리, 메모리관리

커널위에는 Application들이 공통적으로 사용하는 System library가 존재한다. library 는 장비의 전반적인 속도를 결정하는 중요한 요소여서 Java가 아닌 C로 개발되어 있다.

안드로이드 Runtime은 Dalvik Virtual Machine과 Java Core Library로 구성된다. 안드로이드는 Java Virtual Machine을 직접이용하지 않고 모바일 환경에 최적화된 Dalvik Virtual Machine을 사용한다.
(각 Process별로 별도의 Dalvik Virtual Machine이 할당되는 방식이다.
Dalvik은 안드로이드 전용 가상머신으로 Java class파일을 직접 실행할 수 없으며 class파일을 dex포맷으로 변환해야 실행가능하다.


4가지 구성요소
응용프로그램은 아래의 컴포넌트 중 일부만을 가질 수도 있고 여러개를 가질 수도 있다.

Activity - 사용자 인터페이스를 구성하는 기본단위. 눈에 보이는 화면 하나가 Activity이며 여러개의 View들로 구성된다.
Service - UI가 없어 사용자의 눈에 직접적으로 보이지 않으며 Background에서 무한히 실행되는 컴포넌트이다.
UI가 없으므로 사용자의 명령을 받아 들일 수 있는 Activity와연결해서 사용한다.
Brodcast Receiver - 시스템으로부터 전달되는 방송을 대기하고 신호 전달시 수신하는 역할을 한다.
신호만 대기할 뿐 UI를 따로 가지지는 않으므로 방송 수신시 방송의 의미를 해석하고 적절한 Activity를 띄우는 역할을 한다.
Content Provider - 다른 응용프로그램을 위해 자신의 데이터를 제공한다.
응용프로그램간에 데이터를 공유할 수 있는 합법적인 장치가 Conent Provider이다. ex) Database, 주소록
이 4가지 컴포넌트들은 서로 독립적으로 동작하므로 상호간의 통신을 위한 장치가 필요한데 이 역할을 Intent가 담당한다.
Intent는 컴포넌트간의 통신수단이며 메시지에 대한 상세한 정보를 가진다.
 
저작자 표시

'Android' 카테고리의 다른 글

06. TextView  (0) 2010/06/21
05. View  (0) 2010/06/21
04. Android Project 프로젝트 구조와 파일 설명  (0) 2010/06/14
03. Create First Android Application  (1) 2010/06/09
02. Android 초기 셋팅  (0) 2010/06/07
01. 안드로이드 소개  (0) 2010/05/25
Posted by 밥팅우기