본문 바로가기
★Programming★/Andriod

안드로이드의 개괄적 이해

by 최뱅 2010. 10. 17.
-

오늘 교육이 있었던걸 메모하자

1. 안드로이드는 임베디드 디바이스 전용으로 만들어 졌다.

안드로이드 플렛폼 의 네가지

①OS
os는 다들 알고 있는 오페레이팅 시스템이다.

-아이폰은 Ios

-위도우폰은 요즘에 나온 윈도우모바일7

-안드로이드는 리눅스가 OS이다,

이러한 이유는 안드로이드가  OpenSource라는 점 때문이란다.


위의 그림의 제일 하단의 리눅스 커널을 보면 리눅스커널에는 GPL과 APL이 있는데

GPL은 오픈되어있지만 사용하여 수정한뒤 다시 오픈을 반드시 해야만 하는 것이다

APL은 그냥 오픈이란다. 자세한 것은 더 찾아 봐야 겠다.

아무튼 이렇고 이러한 커널의 역할은 크게 네가지로 분류된다.

1) Process

프로세스는 리눅스 프로세스와 안드로이드 어플리케이션 프로세스가 있다.

2)메모리 (멀티프로세서를 사용하므로 스케줄러와 + 전원관리)등을 메모리 관리에 사용

*프로세스 강제 종료 기능이 있다는 중요한 기능!!

3)보안

안드로이드에서는 탈옥이 아니라 루틴이라는 용어를 사용하는데 이것은

루트의 권한을 획득하여 사용하는 것을 말한다.

4)디바이스 관리

위의 그림을 보면 알겟지만 디바이스 드라이버를 많이 관리하는 것을 볼 수있다.

②Middle Ware

 두번째는 미들웨어이다. 이것은 거의 C로 되어있고 간혹 C++로 도 되어있다.

Java는 하드웨어를 바로 직접적으로 사용을 할수없다 어찌 말하면  JVM때문이라고 할 수있겟다.

c/c++로 구성된 library를 사용하는데

내가 관심이 있는 OpenGL|ES

안드로이드 DB인 SQLite

웹브라우저 엔진인 WebKit

C표준 라이브러리 함수인 libc

등 이것들은 다 확장자 *.so를 가진 것이다.

* .so는 Linux에서 동작이 가능한 공유 라이브러리라고 알면 되겟다.

안드로이드 런다임

은 Dalvix VM과 Core library로 되어있다.

달빅은 안드로이드를 위한 가상머신으로 구글에서 직접 JVM과는 별개로 만든것이다.

달빅은 어플리케이션이 실행될때 어플리케이션하나에 하나의 인스턴스를 만들어 들어간다.

(JVM은 하나로 여러개를 하지만)

예)로 들면 터치를 했는데 그게 커널단에서 받아오고 우리는 그걸 미들웨어(라이브러리)를 통해서

제어하는데 그것은 c/c++이기 때문에

java인 런타임에서 쓸려고 core library에서 가능하도록

JIN(java native interface)가 있다.

Native Server

suface flinger -> 화면처리 쪽

③Application Framework

위의 그림을 보면 설명의 모든것을 알수 있을 것이다.

세번쨰로 프레임워크는 이제부터는 java로 구성되어있다.

Activity manager

하나의 화면을 관리하는 것

Notification Manager

사용자에게 알림메세지 같은 것을 관리(문자, 베터리부족)

Location Manager

GPS같은 위치

resource Manager

문자열, 파일, 이미지, 등 리소스 관리

contant provider

DB를 공유, 파일을 공유

view System

화면


④Application

두가지 종류로 분류

-Key Application

안드로이드 플렛폼에 내장되어있는,

제조사에서 처음부터 내장되어 나오는 것

-download Application

사용자가 다운로드한 것