You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android AOSP中Passthrough HAL的两种模式及Manifest配置疑问

Android HAL 模式相关疑问解答

一、Passthrough HAL为何支持两种运行模式?

你对两类HAL的理解没问题,这个设计是Android为了兼顾兼容和灵活部署做的:

  • 兼容旧有实现:早期Android的HAL都是Passthrough模式(直接在进程内加载.so库),不少硬件厂商的旧HAL代码没适配Binderized架构,保留Passthrough运行模式就能直接复用这些代码,不用全部重写。
  • 适配不同场景需求:Binderized模式(跨进程,通过HwBinder通信)隔离性和稳定性更好,但有一定资源开销;Passthrough模式更轻量,适合对性能敏感、资源有限的设备(比如低功耗IoT设备)。让Passthrough HAL支持两种模式,厂商不用维护两套代码,就能根据硬件特性和系统需求选最优部署方案。

二、哪些HAL需要在manifest.xml中定义传输方式?

所有基于**HIDL(硬件接口定义语言)**实现的HAL,都需要在manifest.xml里通过<transport>标签指定传输方式:

  • 若是Binderized HAL,必须写 <transport>hwbinder</transport>,明确使用跨进程的HwBinder通信机制。
  • 若是Passthrough HAL,需要写 <transport arch="32+64">passthrough</transport>(arch字段可根据硬件架构调整,比如仅支持32位就写32),告知系统以进程内加载.so库的方式运行;如果要让Passthrough HAL以Binderized模式运行,也可以在这里指定hwbinder,系统会自动将其包装为跨进程服务。

简言之,只要是基于HIDL的HAL,不管属于Binderized还是Passthrough类型,都得在manifest里声明传输方式,系统靠这个配置来正确加载和管理HAL服务。

内容的提问来源于stack exchange,提问作者john

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 08:45:28