1. 介绍
Binder是Android下基于C/S架构的进程间通信机制,基于开源OpenBinder
从实现上来说可分为Binder驱动、ServiceManager、Server、Client四个组成部分
2. Binder驱动
Binder驱动代码主要位于drivers/android目录
2.1 数据结构
| 数据结构 | 说明 |
2.2 初始化
binder_init()
/*
* 创建如下目录和文件
* 目录
* /sys/kernel/debug/binder
* /sys/kernel/debug/binde/proc
* 文件
* $(BINDER_PROC)/state -- 记录状态信息
* $(BINDER_PROC)/stats -- 记录统计信息
* $(BINDER_PROC)/transactions -- 记录transaction相关信息
* $(BINDER_PROC)/transaction_log -- 记录transaction日志相关信息
* $(BINDER_PROC)/failed_transaction_log -- 记录失败的transaction日志相关信息
* 文件读取函数依次为
* binder_state_show()
* binder_stats_show()
* binder_transactions_show()
* binder_transactions_log_show()
* -
* $(BINDER_PROC) = /sys/kernel/debug/binde/proc
*/
debugfs_create_dir("binder")
debugfs_create_dir("proc")
debugfs_create_dir("state")
debugfs_create_dir("stats")
debugfs_create_dir("transactions")
debugfs_create_dir("transaction_log")
debugfs_create_dir("failed_transaction_log")
/*
* 注册/dev/binder, /dev/hwbinder, /dev/vndbinder设备
*/
init_binder_device() misc_register()
2.3
来源:https://www.cnblogs.com/hzl6255/p/12105245.html