13 Binder通信之ServiceManager

2023-11-03

Binder通信之ServiceManager

一、前言

Android系统中存在很多service,当某个应用调用系统某个service的功能时,往往向系统发出请求,调用该服务的外部接口,这种外部接口我们通常叫做代理接口,也就是说要拿到目标服务需要先拿到目标服务的代理。这个时候,如果每个应用client端都向service端直接获取代理对象,势必开销很大。因此Android系统中,引入一个serviceManager的系统服务,也可以称之为Binder的守护进程来管理这些服务对象。

Binder的四要素:Client,Server,ServiceManager,Binder驱动

ServiceManager的工作:注册服务,查询服务,列出所有的服务,启动一个死循环来解析Binder启动的读写。

二、ServiceManager什么时候启动?

init进程启动时,加载servicemanager.rc,启动serviecmanager:

在这里插入图片描述

ServiceManager.rc: /frameworks/native/cmds/servicemanager/servicemanager.rc


service servicemanager /system
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

13 Binder通信之ServiceManager 的相关文章

随机推荐

  • QT编译FreeType和Little CMS

    一 FreeType FreeType是个开源字体引擎 可以移植到arm中 也可以在桌面软件中使用 下载FreeType 这里使用FreeType 2 10 4版本 使用QT Creator新建工程 工程名为FreeType 解压后 只取出
  • yarn创建vite项目——遇见的错误及解决方法

    今天尝试做一个vue3 vite的组件库项目 没想到第一步就开始出现问题 改了整整一天 那么我们开始 首先 目录中间包含空格 导致报错 会出现这种错误时因为 c program files 这里 中间有一个空格 很显然yarn帮并不能通过这
  • mac安装mysql workbench,Mac OS X 上的“MySQLWorkbench quit unexpectly.”问题

    今天 在我的Mac OS X 10 8 4 系统上使用MySQLWorkbench 6 0 7 在启动之时 就遇到问题不能启动 提示对话框为 MySQLWorkbench quit unexpectly 然后 有 ignore report
  • 软件测试之检查产品说明书

    场景 学习 软件测试 第4章节 检查产品说明书 关于黑盒测试和白盒测试 黑盒测试只需要知道软件要做什么 而无法看到盒子里的软件是怎么运行的 只要进行一些输入 然后输出结果 目前我们做的基本上是这种测试 我们知道输入和预计输出 只要把按操作输
  • GCC编译选项补充

    一 出错检查和警告提示选项 pedantic error 允许发出ANSIC标准所列的全部错误信息 w 关闭所有警告 Wall 允许发出GCC提供的所有有用的报警信息 Werror 把所有的告警信息转化为错误信息 并在告警发生时终止编译过程
  • vue---制作表格+分页功能

    小白第一次尝试使用vue制作分页功能 分为两个部分 一个是表格部分 一个是下面分页的按钮部分 表格部分用最熟悉的html标签table table tr th 字母 th tr tr td td td td tr table
  • 移动端H5页面返回并且刷新页面(BFcache)

    项目中的需求 点击浏览器中的返回按钮 要让页面重新加载资源 因为这部分的资源每次去加载的内容都不一样 如果返回的时候 还是看到原先的内容 那做这个内容块的意义就很小了 而如果用户看完了这部分内容 再返回来的时候 这个地方换成了新的内容 这样
  • Could not resolve all dependencies for configuration ':app:_debugApk'

    问题 FAILURE Build failed with an exception What went wrong A problem occurred configuring project app gt Could not resolv
  • mysql常用命令,mysql数据类型和Java数据类型对应

    一 创建数据库 1 dos命令打开数据库 mysql u root pok 2 查看数据库 show databases 3 创建数据库 假设数据库表名abc create database abc 4 删除数据库 drop databas
  • 刷脸支付让用户与商家距离更进一步

    商业世界中 支付 往往不仅是支付 正如支付宝的诞生让网络交易变得可靠 线下二维码直接带动了移动支付的兴起 刷脸支付则让用户与商家的距离更进一步 以友宝 留夫鸭为代表的线下零售企业正成为这次支付变革中的首批获益者 率先完成了自身零售模式的进化
  • netdiscover使用

    介绍 Netdiscover是一种网络扫描工具 通过ARP扫描发现活动主机 可以通过主动和被动两种模式进行ARP扫描 通过主动发送ARP请求检查网络ARP流量 通过自动扫描模式扫描网络地址 对此我们可以对其网段进行获取存活主机进行信息收集
  • yolov5组件笔记

    深度学习模型组件 深度可分离卷积 瓶颈层Bottleneck CSP瓶颈层BottleneckCSP ResNet模块 SPP空间金字塔池化模块 目录 1 标准卷积 Conv BN activate 2 DWConv深度可分离卷积 3 Bo
  • 部署ML/DL 模型到一个consolidated AI演示

    关键字 IRIS IntegratedML Flask FastAPI TensorFlow Serving HAProxy Docker Covid 19 目的 过去几个月里 我们提到了一些深度学习和机器学习的快速演示 包括一个简单的 C
  • Python pygame窗口无法退出的问题-解决办法

    大部分Python学习课程都会推荐学习pygame库 笔者在学习过程中 遇到了一个小问题 就是按照原来的code来进行 见下 无法正常退出窗口 if event type pygame QUIT sys exit 稍微修改下这样就可以了 i
  • close-on-exec标志介绍

    在执行exec 之前 程序有时需要确保关闭某些特定的文件描述符 尤其是在特权进程中调用exec 来启动一个未知程序时 并非自己编写 抑或是启动程序并不需要使用这些已打开的文件描述符时 从安全编程的角度出发 应当在加载新程序之前确保关闭那些不
  • 视频技术阐释

    目录 一 视频定义 二 视频原理 三 视频中的图像表达原理 四 视频的基础参数 帧 长宽比 分辨率 帧率 码率 重采样率 色深 五 视频的高低频 六 视频编码与格式 七 视频评价 八 视频开发库 九 视频协议 十 常用视频编辑软件 一 视频
  • Golang面试题整理

    1 make和new区别 make和new都是go的内置函数 builtin包下 func new Type Type 内建函数new分配内存 其第一个实参为类型 而非值 其返回值为指向该类型的新分配的零值的指针 func make Typ
  • stm32输出比较模式与PWM模式总结

    文章目录 前言 一 输出比较模式和PWM模式 二 PWM模式 1 原理 2 配置cubemx 3 代码及验证 三 输出比较模式 1 原理 2 配置cubemx 2 代码及验证 总结 前言 最近因为从标准库过渡到hal库 又重新温习了一遍定时
  • SQL 2000递归查询

    网上的做法都是不能以NUL为关键字进行递归查询 现修改如下 可以任意进行递归 记录备忘 查询指定节点及其所有子节点的函数 alter FUNCTION GetLevel ID nvarchar 36 RETURNS t Level TABL
  • 13 Binder通信之ServiceManager

    Binder通信之ServiceManager 一 前言 Android系统中存在很多service 当某个应用调用系统某个service的功能时 往往向系统发出请求 调用该服务的外部接口 这种外部接口我们通常叫做代理接口 也就是说要拿到目