标签:lis \n www 编写 list ioc proc 系统 oid
目录:
一、Binder框架分析
1、IPC、LPC和RPC的概念:
IPC: (Inter Process Communication )跨进程通信,泛指进程之间任何形式的通信行为,它不仅包括各种形式的消息传递,还可以指共享资源,以及同步对象;
LPC: (Local Procedure Call )本地过程调用,用在多任务操作系统中,使得同时运行的任务能互相会话。这些任务共享内存空间使任务同步和互相发送信息;(IPC的封装)
RPC:(Reomote Procedure Call )远程过程调用,类似于LPC,只是在网上工作。RPC开始是出现在Sun微系统公司和HP公司的运行UNIX操作系统的计算机中;
2、通信架构:
Client/Server <---> service manager 交互流程:
server ---------addservice-------> service manager
client ---------getservice--------> service manager
2、源码框架:
(1)android_5.0.2_32\frameworks\native\cmds\servicemanager\service_manager.c //管理server注册的服务(进程)
a. binder_open
b. binder_become_context_manager
c. binder_loop(bs, svcmgr_handler);
c.1 res = ioctl(bs->fd, BINDER_WRITE_READ, &bwr);
c.2 binder_parse
// 解析
// 处理 : svcmgr_handler
SVC_MGR_GET_SERVICE/SVC_MGR_CHECK_SERVICE : 获取服务
SVC_MGR_ADD_SERVICE : 注册服务
// 回复
②android_5.0.2_32\frameworks\native\cmds\servicemanager\binder.c //封装好的Binder驱动库
③android_5.0.2_32\frameworks\native\cmds\servicemanager\bctest.c //client测试代码
二、编写程序
三、测试与总结
Android : 跟我学Binder --- (3) C程序示例
标签:lis \n www 编写 list ioc proc 系统 oid
原文地址:https://www.cnblogs.com/blogs-of-lxl/p/10165045.html