본문 바로가기

Trash/Android ( Old )

안드로이드 강좌 1 - 안드로이드 플랫폼 구조 (Android Platform Architecture)

자 ~! 안드로이드 애플리케이션(Application)을 만들고 싶다면 이리로 오라 ~!!
묻지도 따지지도 않고 가르쳐 드리겠습니다. ㅋㅋㅋㅋ

우선 강좌를 하는 도중에 영어를 쓸겁니다.
예를 들면 : 애플리케이션을 Application 뭐 플랫폼 이라 함은 Platform  이렇게 사용 할텐데요 ...

강좌 내에 사용하는 영어단어에 대해서는 미리 강좌 최상단에 포스팅 하겠습니다.



<<사용 단어>>

Android

휴대 전화를 비롯한 휴대용 장치를 위한 운영 체제와 미들웨어,

사용자 인터페이스 그리고 표준 응용 프로그램을 포함하고 있는 소프트웨어 스택이자 모바일 운영 체제이다.

Architecture

컴퓨터 시스템의 구성을 말한다.

Application

애플리케이션 프로그램의 약자로 목적에 따른 전용 프로그램을 가리킨다. 예를 들면 게임 프로그램, 워드 프로세서 프로그램 등이 있다.

Application

Framework

프로그래밍에서 특정 운영 체제를 위한 응용 프로그램 표준 구조를 구현하는 클래스와 라이브러리 모임이다.

Libraries

C / C++

헤더 파일과 라이브러리 루틴이 모여 있는 것으로 C / C++ 프로그래밍 언어에서 입출력과 문자열 관리와 같은 일상적인 작업을 추가할 때 사용한다.

Linux Kernel

유닉스 계열 운영 체제의 커널이다.

Platform

소프트웨어 응용 프로그램들을 돌리는 데 쓰이는 하드웨어와 소프트웨어의 결합이다. 플랫폼은 하나의 운영 체제 또는 컴퓨터 아키텍처라고 단순히 말할 수 있으며 그 두 가지를 통칭해서 말할 수도 있다.

Runtime

컴퓨터 과학에서 컴퓨터 프로그램이 실행되고 있는 동안의 동작을 말한다.



<<강의 시작>>
Android Platform Architecture
를 살펴보도록 하겠습니다.

안드로이드 플랫폼은 가장 최하단에
Linux Kernel 이 존재하고,
Adnroid Runtime,  Libraries 영역과
Application Framework 영역이 존재 합니다.
그리고 가장 최상단에는 Applications 영역이 존재 하는데,
우리가 작성하게 되는 코드는 이 영역에 위치하게 됩니다.

이제 이 영역들에 대해 좀더 알아보자면

Linux Kernel 에는 디바이스 드라이버, 전원관리, 메모리관리 등을 하며
1) 프로세스 관리, 디바이스 관리, 메모리 관리를 리눅스를 사용한다.
2) C 언어로 작성되었다.
3) Android 포팅(각각의 장비를 알아야 하고, 리눅스 커널을 수정가능 해야 한다.)

Android Runtime 에는 Java Core Libraries와 Dalvik Virtual Machine으로 구성
1) Java 가상머신을 직접 사용하지 않고 모바일 환경에 최적화된 Dalvik Virt을 사용한다.
2) Dalvik Virtual Machine은 안드로이드 전용 가상머신이므로 자바 클래스를 바로 실행
    할 수는 없으며 클래스 파일을 dex 포맷으로 변환해야만 실행 가능합니다.
3) Dalvik Virtual Machine : Application 마다 Object(객체) 1개를 생성합니다.

Libraries 안드로이드 시스템 컴포넌트가 사용하는 다양한 C/C++ Library를 제공한다.
1) SQLite : 경량 데이터베이스 엔진
2) Webkit : HTML 컨텐츠를 신속하게 디스플레이하기 위한 브라우저 엔진
3) Surface Manager : 다양한 창화면의 그래픽 효과를 제공



Application Framwork
1) Framework API로 구성, 개발자를 위해 여러 Architecture를 제공한다.
2) Application을 만들때 사용될 빌딩블럭을 제공한다.
3) 응용 프로그램들은 하위 Kernel들을 직접 호출할 수 없으며 이 영역의 Framwork를 통해 기능을 요청 할 수 있습니다.
4) Activity Manager : Activity 관리, Activity 생명주기를 관리
5) Content Providers : DataBase를 관리하며 SQLite가 탑재되어 있다.
6) View System : View를 관리
7) Package Manager : Android는 패키지로 이루어졌는데 그 패키지를 관리한다.
8) Resource Manager : 문자열, 그래픽, 레이아웃 파일과 같은 코드화되지 않은 자원에 대한 접근을 관리한다.
9) Notification Manager : 통보 기능을 관리, 통지(Battery 부족하다는 경구 메시지 알림 기능 등)
10) Location Manager : 위치관련 등을 관리, GPS 탑재

Application 에는 우리가 작성하는 프로그램이 위치해 있다.
1) Android Architecture의 최상위에 위치한다.
2) 여러분이 만드는 프로그램들이 여기에 위치하게 됩니다.



Android Platform 주요 기술
1) Linux
2) Java
3) XML
4) Tool : Eclipse

이렇게 Android를 공부하실때에 Linux, Java, XML에 대한 전반적인 기본 지식과
개발 툴인 Eclipse를 어느정도 다루실 줄 아셔야 합니다.

Ps. 다음 강의는 개발 환경 구축 강의를 하도록 하겠습니다~!