AIDL Hal 开发指南2 —— AIDL HAL 整体架构

Google 在 Android11 觉得 HIDL 那一套有点多余,把 HIDL HAL 弃用了。并提供了新的 AIDL HAL。

主要有以下几点变化:

  • 一般情况下 HAL 是一个 binder 服务,注册到 ServiceManager,通过命令 adb shell service list 中有大量的 hal binder 服务。
  • 通常,App 作为 binder 客户端与 Framework 中的系统进程(SystemServer SurfaceFlinger 等)通信,Framework 中的系统进程会作为 hal binder 服务的客户端,访问 hal。一般情况下,App 访问 hal 要经过两次跨进程通信
  • 特殊情况下,比如某个硬件只有一个 App 使用,App 可以直接通过 binder 通信访问到 hal binder 服务。
  • 某些 hal 对性能要求高(主要是显示相关的),hal 层是一个 so 库,系统进程通过 dlopen 的方式加载。这类 hal 叫 stable-c hal

参考资料

相关推荐
王家视频教程图书馆14 小时前
android java播放器依赖
android
robotx17 小时前
安卓16屏保中的启用时机,选项不正确
android
JulyYu17 小时前
【Android】第三方库依赖引发的异常情况排查
android·android studio
QING61820 小时前
简单说下Kotlin 作用域函数中 apply 和 also 为什么不能空安全调用?
android·kotlin·android jetpack
城东米粉儿20 小时前
着色器 (Shader) 的基本概念和 GLSL 语法 笔记
android
儿歌八万首1 天前
Jetpack Compose :封装 MVVM 框架
android·kotlin·compose
2501_915921431 天前
iOS App 中 SSL Pinning 场景下代理抓包失效的原因
android·网络协议·ios·小程序·uni-app·iphone·ssl
壮哥_icon1 天前
Android 系统级 USB 存储检测的工程化实现(抗 ROM、抗广播丢失)
android·android-studio·android系统
Junerver1 天前
积极拥抱AI,ComposeHooks让你更方便地使用AI
android·前端