Binder-从Java层说起
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Binder-从Java层说起相关的知识,希望对你有一定的参考价值。
Java层的binder是对C++层的Native Binder的封装,提供给其他Java code方便使用;关于与Native Binder的监听与交互,是交给Java Binder的jni部分完成的
这里涉及的code如下
framework/base/core/java/android/os/
- IInterface.java
- IBinder.java
- Parcel.java
- IServiceManager.java
- ServiceManager.java
- ServiceManagerNative.java
- Binder.java
framework/base/core/jni/
- android_os_Parcel.cpp
- AndroidRuntime.cpp
- android_util_Binder.cpp (核心类)
总体的架构图如下
整个Binder流程里涉及到的类如下
先看Java层的code
其中IBinder是用来做通信的接口,IInterface是程序直接逻辑方法的接口
各个类之间的关系如下图
以上是关于Binder-从Java层说起的主要内容,如果未能解决你的问题,请参考以下文章
Android native进程间通信实例-binder篇之——HAL层访问JAVA层的服务
Binder 机制Native 层 Binder 机制分析 ( service_manager.c | 开启 Binder | 注册 Binder 进程上下文 | 开启 Binder 循环 )(代码片