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

Android 使用AIDL HAL

生成的目录结构

以audioControl 为例:

  • 首先编写的是aidl文件。
    其文件目录结构是:
── android
│   └── hardware
│       └── automotive
│           └── audiocontrol
│               ├── AudioFocusChange.aidl
│               ├── AudioGainConfigInfo.aidl
│               ├── DuckingInfo.aidl
│               ├── IAudioControl.aidl
│               ├── IAudioGainCallback.aidl
│               ├── IFocusListener.aidl
│               ├── IModuleChangeCallback.aidl
│               ├── MutingInfo.aidl
│               └── Reasons.aidl
  • 对应的Android.bp文件
    Android.bp 用来生成
    out/soong/.intermediates/hardware/interfaces/automotive/audiocontrol/aidl下的接口文件。
    后续客户端和服务端的实现 都需要引用相关的头文件。
    几个要点:
    组成接口的 AIDL 源文件的列表。
  1. 名字android.hardware.automotive.audiocontrol:
    AIDL 接口模块的名称,能唯一标识 AIDL 接口。
  2. aidl源文件路径
  3. 稳定性生命 stability: vintf
    stability:可选标志,用于承诺此接口的稳定性。目前仅支持 “vintf”。如果未设置此属性,这意味着接口在此编译环境下具有稳定性(因此,此处加载的接口只可与一起编译的元素共同使用,例如在 system.img 上)。如果将此标志设为 “vintf”,这表示做出了稳定性承诺:只要有代码使用此接口,接口就必须保持稳定。
  4. 后端 给客户端的代码 java。会生成java的接口给外部调用。
  5. frozen:可选标志,设置为 true 表示接口自上一个接口版本以来没有任何更改。这样可以启用更多构建时检查。设置为 false 表示接口处于开发阶段且包含新更改,因此运行 foo-freeze-api 将会生成新版本并自动将值更改为 true。在 Android 14 中引入。
aidl_interface {name: "android.hardware.automotive.audiocontrol",vendor_available: true,srcs: ["android/hardware/automotive/audiocontrol/*.aidl"],imports: ["android.hardware.audio.common-V1","android.media.audio.common.types-V2",],stability: "vintf",backend: {java: {sdk_version: "module_current",min_sdk_version: "31",apex_available: [&
http://www.lryc.cn/news/316824.html

相关文章:

  • C++的一些基础语法
  • mysql 技术100问?
  • APK漏洞扫描工具
  • ReactNative项目构建分析与思考之react-native-gradle-plugin
  • LeetCode454 四数相加
  • Kafka消费者重平衡
  • 【线代基础】张量、向量、标量、矩阵的区别
  • 用chatgpt写论文重复率高吗?如何降低重复率?
  • 字节跳动也启动春季校园招聘了(含二面算法原题)
  • 二,几何相交---4,BO算法---(3)数据结构
  • 中间件MQ面试题之Kafka
  • Prometheus 安装部署
  • 龙芯杯赛道-学习过程记录
  • 76. 最小覆盖子串-力扣hot100(C++)
  • vue的生命周期有那些
  • OpenStack安装步骤
  • 如何借助CRM系统获得直观的业务洞察?CRM系统图表视图解析!
  • 制作图片马:二次渲染(upload-labs第17关)
  • XGB-20:XGBoost中不同参数的预测函数
  • websocket 使用示例
  • 基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的水下目标检测系统(深度学习模型+UI界面+训练数据集)
  • 中间件 Redis 服务集群的部署方案
  • 生成哈夫曼树C卷(JavaPythonC++Node.jsC语言)
  • Java代码审计安全篇-SSRF(服务端请求伪造)漏洞
  • 入门可解释机器学习和可解释性【内容分享和实战分析】
  • Promise其实也不难
  • 吴恩达 x Open AI ChatGPT ——如何写出好的提示词视频核心笔记
  • JVM从1%到99%【精选】-【初步认识】
  • pdf转图片(利用pdf2image包)
  • SwiftUI的转场动画