码迷,mamicode.com
首页 > 移动开发 > 详细

Android : 跟我学Binder --- (3) C程序示例

时间:2018-12-23 19:28:11      阅读:223      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!