Zygote
- Zygote 프로세스는 Dalvik 가상 머신을 구동
- 안드로이드의 모든 어플리케이션은 각자 독립적인 가상 머신 위에서 동작
- 항상 가상 머신을 초기화하고 실행하기에는 많은 로드가 걸리기 때문에 Zygote가 실행된 가상 머신의 코드 및 메모리를 공유하도록 한다
- Init -> Zygote -> com.android.alarm
- Zygote에서 fork를 하면 Zygote가 가진 가상 머신과 리소스를 그대록 복제.
- 그리고 새로 만들어진 Zygote에서 android application을 실행
- COW (Copy On Write) 기법을 이용
Zygote는 자바로 작성되어 있으며, Zygote 또한 Dalvik 위에서 동작되어야 함 .
따라서
Init -> app_process -> Dalvik Vm 실행 -> Zygote 실행
-> 시스템 서버 실행 -> 네이티브 서비스(Surface finger, Audio Finger) 실행
-> 프레임워크 서비스(Activity manager, Package manager) 실행
댓글