从上之下, 整个 Binder 架构所涉及的总共有以下 5 个目录
1:(java)/framework/base/core/java/
2:(jni) /framework/base/core/jni/
3:(Native) /framework/native/libs/binder
4:(Native)/framework/native/cmds/servicemanager/
5: (Driver) /kernel/drivers/staging/android
从三大类上面分:Java framework,Native framework,Kernel
主要涉及的类有如下知识:
1.Java framework
1.1/framework/base/core/java/
- IInterface.java
- IBinder.java
- Parcel.java
- IServiceManager.java
- ServiceManager.java
- ServiceManagerNative.java
- Binder.java
1.2 /framework/base/core/jni/
- android_os_Parcel.cpp
- AndroidRuntime.cpp
- android_util_Binder.cpp (核心类)
2.Native framework
2.1 /framework/native/libs/binder
- IServiceManager.cpp
- BpBinder.cpp
- Binder.cpp
- IPCThreadState.cpp (核心类)
- ProcessState.cpp (核心类)
2.2 /framework/native/include/binder/
- IServiceManager.h
- IInterface.h
2.3 /framework/native/cmds/servicemanager/
- service_manager.c
- binder.c
3.Kernel
/kernel/drivers/staging/android/
- binder.c
- uapi/binder.h