Binder系统的C程序使用示例
IPC : Inter-Process Communication, 进程间通信
RPC : Remote Procedure Call, 远程过程调用

这里我们直接只用android系统中已经实现好的Bindrt系统。

具体源代码在 frameworks\native\cmds\servicemanager\目录下。

service_manager.c :
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 : 注册服务         
          // 回复

bctest.c
注册服务的过程:
a. binder_open
b. binder_call(bs, &msg, &reply, 0, SVC_MGR_ADD_SERVICE)
                   // 含有服务的名字
                         // 它会含有servicemanager回复的数据
                                 // 0表示servicemanager
                                    // code: 表示要调用servicemanager中的"addservice函数"

获取服务的过程:
a. binder_open
b. binder_call(bs, &msg, &reply, target, SVC_MGR_CHECK_SERVICE)
                   // 含有服务的名字
                         // 它会含有servicemanager回复的数据, 表示提供服务的进程
                                 // 0表示servicemanager
                                    // code: 表示要调用servicemanager中的"getservice函数"

binder.c (封装好的C函数)

相关代码:https://github.com/qq2216691777/AndroidStudioProjects

版本 V10

最新文章

  1. 【转】利用反射快速给Model实体赋值
  2. 导出excel用ajax不行,提交form表单可以
  3. 第七章 springboot + retrofit(转载)
  4. 基于VC的声音文件操作(五)
  5. BZOJ4707 : B君的技巧
  6. 使用nodejs中httpProxy代理时候出现404异常
  7. 详细讲解 关于Linux静态库和动态库的分析
  8. FFT(快速傅里叶变换):HDU 5307 He is Flying
  9. #Java编程题-百钱百鸡
  10. C和指针---读书笔记。
  11. QTREE - Query on a tree
  12. javaCV开发详解之7:让音频转换更加简单,实现通用音频编码格式转换、重采样等音频参数的转换功能(以pcm16le编码的wav转mp3为例)
  13. Bootstrap常用样板
  14. jQuery 获取url中的参数
  15. django内置的认证系统
  16. Alpha冲刺4
  17. AIS系统(转)
  18. iOS UI布局-VFL语言
  19. SAE java应用读写文件(TmpFS和Storage)
  20. Learn X in Y minutes Where X=c++

热门文章

  1. Verilog 分频器
  2. 通过 GraalVM 将 Java 程序编译成本地机器码!
  3. 整理一下《java并发编程实战》中的知识点
  4. 老猿学5G:多量纲计费与QoS的QCI、5QI、ARP、GBR和MBR
  5. PyQt+moviepy音视频剪辑实战文章目录
  6. 第九章、Qt Designer可视化设计界面布局组件介绍
  7. PyQt(Python+Qt)学习随笔:模式窗口的windowModality属性与modal属性
  8. PyQt(Python+Qt)学习随笔:Qt Designer组件属性编辑界面中对话窗QDialog的modal属性
  9. Leetcode学习笔记(2)
  10. 攻防世界 web进阶区 lottery