1. 程式人生 > >Binder-從Java層說起

Binder-從Java層說起

blog parcel spa 交互 關於 images nag regexp com

  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層說起