首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

Binder有关知识

2012-07-02 
Binder相关知识开源版本文件的路径:frameworks/base/cmds/servicemanager/binder.hframeworks/base/cmds/s

Binder相关知识
开源版本文件的路径:
frameworks/base/cmds/servicemanager/binder.h
frameworks/base/cmds/servicemanager/binder.c
frameworks/base/cmds/servicemanager/service_manager.c

程序执行的流程:

open():打开binder驱动

mmap():映射一个128*1024字节的内存

ioctl(BINDER_SET_CONTEXT_MGR):设置上下文为mgr
       进入主循环binder_loop()
             ioctl(BINDER_WRITE_READ),读取
                       binder_parse()进入binder处理过程循环处理
         binder_parse()的处理,调用返回值:
        当处理BR_TRANSACTION的时候,调用svcmgr_handler()处理增加服务、检查服务等工作。各种服务存放在一个链表(svclist)中。其中调用binder_等开头的函数,又会调用ioctl的各种命令。
        处理BR_REPLY的时候,填充binder_io类型的数据结

热点排行