안드로이드
리눅스 기반의 플랫폼. 부팅 시에 부트로더를 통해 리눅스 커널이 먼저 시작된다.
1) init
init프로세스를 통해 초기화하는 작업을 하고, 동작에 필요한 각 프로세스들을 실행한다.
2) 컨텍스트 매니저
안드로이드의 모든 시스템 서비스는 부팅 시 자신의 핸들 저보를 컨텍스트 매니저에 등록해야 한다. 서비스 등록 과정에서도 프로세스 간 통신을 수행하기 위해 바인더 IPC가 이용된다.
3) Zygote
안드로이드 애플리케이션 로딩 시간의 단축을 위해 모든 자바 기반 안드로이드 애플리케이션은 Zygote 를 통해 포크 된 프로세스 상에서 동작한다.
시스템 서버는 Zygote에서 최초로 포크되어 실행되는 안드로이드 애플리케이션 프로세스이다.
시스템 서버에서 실행하는 자바 시스템 서비스도 안드로이드 애플리케이션이나 프레임워크 내부 모듈에서 이용할 수 있게 하기 위해 컨텍스트 매니저에 등록돼 있어야 한다.
바인더 IPC를 통해 자바 시스템 서비스를 C언어 기반의 서비스 매니저에 등록하려면 자바와 C 언어 간의 인터페이스 역할을 하는 JNI(Java Native Interface)를 추가로 이용해야 한다.
'Android' 카테고리의 다른 글
Android Framework ) init.rc 파일 (0) | 2014.06.09 |
---|---|
Android Framework) init 프로세스 (0) | 2014.06.08 |
Android) 이클립스 JNI 기본 설정 (0) | 2014.03.21 |
Android) could not find ***apk error (0) | 2014.03.21 |
Android]Android.mk (opencv 설정) (0) | 2014.03.21 |