当前位置: 首页 > news >正文

[Android] Binder 里的 Service 和 Interface 分别是什么

前言:

在使用 Binder 的时候,会使用到两个常量字符串,一个是 ServiceName ,一个是 InterfaceName,他们格式如下:

  constexpr char kDefaultServiceName[] = "my.remoteXXXservice";

  constexpr char kDefaultInterfaceName[] = "my.remoteXXXservice@1.0";

ServiceName通常不携带 @1.0 这种类似于版本号的东西,InterfaceName会携带。

ServiceName:

ServiceName是用来标识某个服务的,服务的注册/获取是通过IServiceManager来完成的

获取

  sp<IServiceManager> sm = defaultServiceManager();

  sp<IBinder> binder = sm->getService(String16(kDefaultServiceName));

注册

    defaultServiceManager()->addService(

            String16("media.player"), new MediaPlayerService());

InferfaceName:

InterfaceName是用来标识一组接口的,所谓的一组接口就是Bp和Bn里对应的那一组业务enum,一个Service里可以注册N个interface,每个interface还可以有N个版本。

发送

binder->transact(kTxCreateVirtualAudioTrack, data, &reply);

接收

onTransaction(...){

kTxXXX:

   ...

}

相关文章:

  • 二维码扫描,没有生成,生成比较复杂
  • Web前端图形显示:深入探索与实用指南
  • 深入探索MySQL:性能调优与架构设计
  • Python数据分析与机器学习在医疗诊断中的应用
  • Flink Sql:四种Join方式详解(基于flink1.15官方文档)
  • 配置调整BGP网络的收敛速度方法
  • Flutter InAppWebView Unknown feature SUPPRESS_ERROR_PAGE
  • MySQL学习——在用Connector/NET处理BLOB数据
  • JavaScript-DOM
  • Java ORM 双雄:Mybatis vs Hibernate 的技术对决
  • 使用GPT/文心实现诗词作画
  • 黑客攻击路径
  • Linux 文件类型权限
  • 遥控玩具车电机驱动应用中的双H桥驱动芯片
  • cocos入门11:生命周期
  • $translatePartialLoader加载失败及解决方式
  • 【刷算法】从上往下打印二叉树
  • ➹使用webpack配置多页面应用(MPA)
  • 2017 年终总结 —— 在路上
  • centos安装java运行环境jdk+tomcat
  • exports和module.exports
  • MySQL数据库运维之数据恢复
  • oschina
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • Python学习笔记 字符串拼接
  • Vue2.x学习三:事件处理生命周期钩子
  • web标准化(下)
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 读懂package.json -- 依赖管理
  • 浅谈Golang中select的用法
  • 入口文件开始,分析Vue源码实现
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 我看到的前端
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 一道闭包题引发的思考
  • 移动端 h5开发相关内容总结(三)
  • 用Canvas画一棵二叉树
  • 责任链模式的两种实现
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • gunicorn工作原理
  • 阿里云ACE认证学习知识点梳理
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​比特币大跌的 2 个原因
  • ​水经微图Web1.5.0版即将上线
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #ubuntu# #git# repository git config --global --add safe.directory
  • #图像处理
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (C语言)字符分类函数
  • (SpringBoot)第七章:SpringBoot日志文件
  • (创新)基于VMD-CNN-BiLSTM的电力负荷预测—代码+数据
  • (二)构建dubbo分布式平台-平台功能导图
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (五)c52学习之旅-静态数码管
  • (转载)OpenStack Hacker养成指南