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