首页 > 代码库 > Binder-从Java层说起

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层说起