• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

BinderHwBinder-和-VndBinder

android 搞代码 3年前 (2022-03-01) 16次浏览 已收录 0个评论

碰到钻研过 Android 过程间通信的敌人,我通常喜爱求教 Binder 相干的问题。然而,太细节的问题有点求全责备了,对于实质的了解是我冀望的。题目的问题通常是我最喜爱问的一个。

Android 8.0 当前的版本中,Binder有哪几种?它们都是怎么应用的?

IPC 域阐明
/dev/binder框架/利用过程之间的 IPC,应用 AIDL 接口
/dev/hwbinder框架/供应商过程之间的 IPC,应用 HIDL 接口 供应商过程之间的 IPC,应用 HIDL 接口
/dev/vndbinder供应商/供应商过程之间的 IPC,应用 AIDL 接口

为什么会存在这三种 Binder?

Android 8.0 从新设计了 Android 零碎框架,引入 Treble 机制。在新的架构中,引入了 HAL 接口定义语言(HIDL),提供了独立的供应商分区(vendor),以及供应商原生开发套件 (VNDK)。通过这些新技术,能够将零碎框架与供应商实现分隔开来,使得用户能够独立替换分区镜像,以便制造商可能更轻松、更疾速地更新 Android 零碎。

Treble 的引进,使得 system 和 vendor 分区间无奈间接拜访,导致原有的 Binder 机制不能持续应用。因而将 Binder 拆分为 Binder、HwBinder 和 VndBinder,用于在 system/system、system/vendor 和 vendor/vendor 之间进行过程间通信。三种 Binder 的应用如下图所示,

]

三种 Binder 应用的资源有什么不同?

这个问题的答案曾经在上图中,能够归结为以下几点:

Device nodeBinder LibraryServiceInterface Language
Binder/dev/binderlibbinderservicemanagerAIDL
HwBinder/dev/hwbinderlibhwbinderhwservicemanagerHIDL
VndBinder/dev/vndbinderlibbindervndservicemanagerAIDL

为什么会引入 HwBinder?

HwBinder 引入的实质还是 Treble 机制的应用,这使得 system 和 vendor 分区互相隔离。在 Android 8.0 之前,Android HAL 与零碎框架是紧耦合的,它们打包在一个镜像里。HAL只是一个个的so库,framework 通过关上动静库来调用 HAL。 为了适配 HwBinder,Android 8.0 同时引入了 HIDL,用于建设 framework 和 HAL 间的通信。

通过这个扭转后,HAL 能够同时服务于 system 和 vendor。而 HAL 的实现位于 vendor 分区,通过 HwBinder 能够确保 system 和 vendor 独立降级,而不会影响 HAL 的调用。

三种 Binder 在驱动实现上有什么不同?

三种 Binder 除了设施节点不同以外,驱动实现是雷同的。

参考文档:

应用 Binder IPC

Android10.0 Binder通信原理(一)Binder、HwBinder、VndBinder概要


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:BinderHwBinder-和-VndBinder

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址