Android 모바일 기반 아키텍처 사례
* 모바일 기반 아키텍처 정의서
* 문서관리
* 목차
1. Android Application 개발 개요
1.1 Android Application은 Java로 작성되며 Compile된 Class와 데이터, 리소스와 파일과 함께 apk 파일 형태로 묶여진다.
1.2 apk 파일은 Application 배포/설치를 위한 단위이며 하나의 Application으로 간주된다.
1.3 모든 Application은 리눅스 프로세스에서 실행된다.
1) 각 프로세스는 자신만의 VM을 가진다.
2) 각 Application은 고유한 userId를 가지며 Permission이 설정된다.
3) 두 개의 Application은 동일한 userId 공유가 가능하다 (동일 프로세스, VM 공유)
3. Android Application Start-up (구동 프로세스)
리
눅스 커널 구동 후 최초로 실행되는 프로세스는 Zygote이다. Zygote란 어플리케이션을 빠르게 구동하기 위해서 미리 Fork
되어 있는 프로세스이다. 이것은 시스템에서 exec() 호출을 통해 특정 어플리케이션을 실행하고자 하기 전까지는 중립적인 상태,
즉 특정 어플리케이션과 합체되지 않은 상태를 유지한다.
4. Anroid 프로세스
* Android 프로세스 흐름
우선 데몬을 올린다. 데몬은 Init에 의해 리눅스와 같이 시작되었다가 리눅스가 종료될 때 없어지는 프로그램으로서 데몬을 작성하는 규격에 따라 만들어져야 한다.
Zygote가 Dalvik을 초기화 한다. C 밑에 있는 기본라이브러리들은 런타임을 통해 실행되고 상위 서비스들은 Dalvic을 통해 실행된다. 이러한 과정들을 위한 설정은 해당하는 config 파일을 수정하면 된다. 어떤 동작들을 바꾸고 싶으면 기본적으로 init.rc를 바꾸면 되고 Zygote를 바꾸고 싶으면 그 설정파일을 바꾸면 된다.
그리고 시스템서버, 서페이스매니저(SurfaceManager), 오디오매니저들이 올라간다.
그 다음에는 시스템 서비스들이 활성화 된다. 이들은 서비스들이므로 서비스매니저에 등록된다.
5. Android 개발 구성 요소
User Interface, Resource and Assets, Intents & Intent Filter, Data Storage, Contentt Providers, Security & Permission
Graphics, Audio and Video, Location and Maps, App Widgets, Message Handling
댓글 없음:
댓글 쓰기