Android Project Treble中术语“Bs”的具体含义是什么?
Bs术语含义解答
Bs的完整含义是 Binder passthrough Stub,对应你提到的stub选项,是Android Treble架构引入HIDL后,专门为passthrough模式设计的组件。
- 已有的
Bn(Binder native)是传统Binder跨进程通信场景下服务端的本地桩实现,负责接收客户端跨进程发来的调用请求,反序列化后调用本地服务逻辑,再把返回值序列化发回客户端。 Bp(Binder proxy)是客户端侧的代理实现,负责把本地的接口调用序列化后通过Binder驱动发往服务端,再把返回的结果反序列化返回给调用方。- 自Android O引入Treble架构后,HIDL服务支持两种运行模式:
- binderized模式:服务独立运行在单独进程,客户端和服务端走传统Binder跨进程通信,此时用的还是Bn/Bp这套组件
- passthrough模式:服务以动态库的形式直接加载到客户端进程运行,不需要走跨进程IPC通信,
Bs就是这个场景下的桩实现:它会直接把上层的接口调用转发给本地加载的HAL实现逻辑,省去了Binder IPC的序列化、跨进程调度等开销,主要用于旧厂商HAL的过渡兼容。
它不属于你提到的另外两个选项:
- 不是
shim:shim的核心作用是做接口兼容适配,通常用于两套不兼容的接口之间做转换,和Bs的设计定位不符 - 不是
skeleton:skeleton一般是传统Binder服务端基类的统称,和跨进程通信场景绑定,Bs是专门针对同进程passthrough场景的特殊实现,不属于跨进程skeleton的范畴。
内容的提问来源于stack exchange,提问作者tonykwok
相关产品推荐
相关产品推荐

