深入理解Binder

1. Binder驱动程序

    



2. Binder进程间通信库

   在IPCThreadState.cpp 有一些变量没有定义,在什么地方定义的呢?

     "BC_TRANSACTION",
    "BC_REPLY",
    "BC_ACQUIRE_RESULT",
    "BC_FREE_BUFFER",
    "BC_INCREFS",
    "BC_ACQUIRE",


       还有结构体 binder_write_read的定义。

       #include <private/binder/binder_module.h>   后者包含了#include <linux/binder.h>, 在bionic/libc/kernel/common/linux/binder.h

    定义了所用的结构体类型。


     另外,一些全局变量的定义:

   

namespace android {

// For ProcessState.cpp
extern Mutex gProcessMutex;
extern sp<ProcessState> gProcess;

// For ServiceManager.cpp
extern Mutex gDefaultServiceManagerLock;
extern sp<IServiceManager> gDefaultServiceManager;
extern sp<IPermissionController> gPermissionController;

}   // namespace android

 定义在#include <private/binder/Static.h>。

    在上面定义的数据结构的最后有 gPermissionController。 其与权限有关。


     

3。 Binder对象的引用计数和死亡通知机制


4.

你可能感兴趣的:(深入理解Binder)