第1页AndroidAndroid系统移植系统移植第九章第九章JavaJava启动流程和程序结构启动流程和程序结构第2页一、一、javajava部分的启动流程部分的启动流程二、二、jnijni的基本概念的基本概念三、三、jnijni的实现的实现四、框架层中使用四、框架层中使用jnijni五、五、APKAPK中使用中使用jnijni第3页9
1java部分的启动流程•Android系统的本地部分启动完成后,将形成一系列的守护进程,其中的名称为zygote的守护进程将继续完成java部分的初始化,java部分初始化结束后,形成zygote、SystemServer以及若干个java应用的进程,系统进入正常运行阶段
1启动流程概述•Android系统java部分的启动主要涉及以下几个实体:作为zygote运行的本地可执行程序,java框架库中的zygoteInit,java服务库当中的SystemServer和个服务,java服务库对应的JNI本地库libandroid_sercers
so,系统服务器的本地库libandroid_sercers
•Java的启动流程可以分成以下的几个步骤
•从本地可执行程序运行名为zygote的守护进程•Zygote运行ZygoteInit(进入java程序)•ZygoteInit运行SystemServer(java类),并分裂出一个新的进程,•SystemServer首先运行libandroid_sercers
so库当中的初始化(进入本地程序)
•执行libandroid_sercers
so当中的系统初始化
•SystemServer中的java初始化再次被调用(再入java程序)
•建立ServerThread线程
1启动流程概述•ServerThread线程建立各个服务,然后进出入循环•Activi