Android binder介绍

会有一股神秘感。 提交于 2019-12-27 00:39:23

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!