预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共38页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Android系统移植 第九章Java启动流程和程序结构一、java部分的启动流程 二、jni的基本概念 三、jni的实现 四、框架层中使用jni 五、APK中使用jni9.1java部分的启动流程9.1.1启动流程概述9.1.1启动流程概述9.1.1启动流程概述9.1.2java系统的守护进程9.1.2java系统的守护进程9.1.2java系统的守护进程9.1.3Zygoteinit类的执行9.1.3Zygoteinit类的执行9.1.4Zygoteinit类的执行-main方法9.1.4Zygoteinit类的执行-本地接口init1()9.1.4Zygoteinit类的执行-system_init()9.1.4Zygoteinit类的执行-system_init()9.1.4Zygoteinit类的执行-init2()方法9.1.4Zygoteinit类的执行-serverthread9.1.4Zygoteinit类的执行-serverthread9.1.4Zygoteinit类的执行-各个”服务”的执行9.1.4Zygoteinit类的执行-各个”服务”的执行9.1.4Zygoteinit类的执行-各个”服务”的执行9.1.5java应用程序部分的启动9.1.5java应用程序部分的启动8.1android的java本地调用8.1android的java本地调用9.1.5java应用程序部分的启动9.2java层程序的结构设计9.2.1目标和设计思路9.2.1目标和设计思路8.1android的java本地调用8.1android的java本地调用8.1android的java本地调用8.1android的java本地调用8.1android的java本地调用在android中提供的jni的方式,让java程序可以调用C语言编写的程序,android中很多java类具有native接口,这些native接口就是由本地实现,然后注册到系统中的。 在Android中主要的jni代码在一下的路径中: Frameworks/base/core/jni/这个路径中的内容将被编译成库libandroid_runtime.so,这就是一个普通的动态库,被放置在目标系统的/system/lib目录中。 除此之外,android还包含其他的jni库,录入媒体部分的jni在目录frameworks/base/media/jni中,被编译成libmedia_jni.so。 Jni中的各个文件实际上就是C++的普通文件,其命令一般和支持的java类有对应关系,这种关系式习惯上的写法,而不是强制的。 在android中实现的jni库,需要连接动态库libnativehelper.so。 Jni在android层次结构中的作用Jni在android层次结构中的作用如图所示: Android系统的jni和标准的java基本类似,实现jni主要的流程为在java源代码中声明本地方法,并注册到对应的java类中,在java层的声明方面,android和标准的java使用了完全相同的方法,在本地层的实现方面,原本jni也没有绝对完整的规则,android系统具有一定的特殊性 谢谢!