morgue

android 系统核心机制binder(10)binder java层JNI初始化

こ雲淡風輕ζ 提交于 2020-11-23 11:36:09
本章关键点总结 & 说明: 这里关注➕Binder Java层实现中 JNI层开机初始化部分,主要谈关键类Binder、BinderInternal、BinderProxy的开机初始化流程。 初始化Java层Binder框架(JNI的注册) Java层Binder系统是在C++ 层Binder上通过JNI建立的,同时在开机时一定要在Java层Binder正式工作之前建立这种关系。这里主要分析Java层Binder框架是如何初始化。 在Android系统中,在Java初创时期,系统会提前注册一些JNI函数,其中有一个函数专门负责搭建Java Binder和Native Binder交互关系,该函数是register_android_os_Binder,代码如下: int register_android_os_Binder(JNIEnv* env) { if (int_register_android_os_Binder(env) < 0) //初始化Java Binder类和Native层的关系 return -1; if (int_register_android_os_BinderInternal(env) < 0)//初始化Java BinderInternal类和Native层的关系 return -1; if (int_register_android_os