基于android 8,首先看一张结构图:
按层次分为4层,分别是:
1.驱动层
\kernel\msm-3.18\drivers\staging\android
2.CPP层
\frameworks\native\libs\binder
3.JNI层
frameworks/base/core/jni/android_util_Binder.cpp
4.JAVA层
frameworks/base/core/java/android/os/Binder.java
frameworks/base/core/java/android/os/Binder.java$BinderProxy
其中左边是客户端使用的类,如BpBinder.cpp和Binder.java$BinderProxy
右边则是服务端使用的类,如BBinder.cpp和Binder.java
其中BinderProxy是在JNI生成
根据需要可以在JAVA或CPP层实现Binder