[Android] Intro Android 2011. 12. 12. 14:37
안드로이드 런타임은 JVM이 아닌 DVM(달빅가상머신)에서 돌아간다.

달빅은 자바 클래스를 바로 사용 할 수 없으며 dex 포멧으로 변환하여야만 동작 한다.

예전에 자바를 좀 만져봤지만.. 조금 이질적인 느낌을 많이 받는다.

또한 안드로이드 실행 파일은 같은 패키지에 속한 자바 클래스와 리소스 집합으로 프로세스와 반드시 대응되지 않는다.

즉, 응용 프로그램끼리 서로 기능을 공유할 수 있고 다른 프로그램의 구성 요소를 불러 같은 주소 공간에서 실행할 수도 있다.

안드로이드는 다음과 같은 4개의 컴포넌트를 이용한다.

1. 액티비티 - 사용자 인터페이스를 구성하는 기본 단위
2. 서비스 - 백그라운드에서 무한히 실행되는 컴포넌트
3. 브로드캐스트리시버(BR) - 시스템으로부터 전달되는 방송을 대기하고 신호 전달시 수신하는 역할
4. 콘텐트 제공자 - 다른 프로그램을 위해 자신이ㅡ 데이터 제공(데이터 베이스, 주소록 CP로 전달)

위 4가지는 서로 독립적으로 동작하며 상호 통신위해 인텐트(컴포넌트간 통신 수단으로 메세지에 대한 정보 가짐)가 필요하다.

안드로이 프로젝트 구성은 다음과 같다.

AndroidManifest.xml - 프로젝트 버전, 이름, 구성등의 정보를 가짐
src/Android.java - 응용 프로그램 동작 기술
gen/R.java - 프로젝트내의 개체에 접근하는 ID 정의, 이는 절대 편집 금지
Android Library 폴더 - 안드로이드 기본 라이브러리
assets - 각종 미디어 파일 저장
res/drawable - 이미지 저장
res/layout/main.xml - 응용프로그램 디자인
res/values/string.xml - 문자열 정의
default.properties - 빌드 타깃 명시