aidl for hal - stable AIDL

Android 10 新增了稳定版 AIDL 支持,这是一种跟踪 AIDL 接口 API 和 ABI 的新方法。稳定版 AIDL 工作方式与 AIDL 相同,但构建系统会跟踪接口兼容性并限制某些操作:

  • 接口在构建系统中通过 aidl_interfaces 定义。
  • 稳定版 AIDL 接口只能包含结构化数据类型,构建系统会基于 AIDL 定义自动生成 Parcelable 类并处理所有的编组和解组操作,开发者无需手动实现 writeToParcel()、createFromParcel() 等方法,只需定义数据结构即可直接使用。
    1. parcelable 声明(自定义 parcelable)不是结构化 AIDL。在 AIDL 中定义了字段的 Parcelables 才称为结构化 parcelables
    2. 对于 boolean、char、float、double、byte、int、long 和 String 类型,支持(但不要求)设置默认值。从 Android 12 开始,也支持为用户定义的枚举设置默认值。当未指定默认值时,会使用类似 0 或空值。没有默认值的枚举会被初始化为 0,即使不存在值为零的枚举项。
  • 接口可以声明为稳定版(向后兼容)。构建系统会在 AIDL 接口旁边自动生成并维护 API 版本记录文件,跟踪每个版本的完整定义。当修改接口时,系统会对比新旧版本确保向后兼容,任何破坏兼容性的修改(如删除方法、修改签名)都会导致构建失败,从而保证 HAL 接口的稳定性和系统的安全升级。

以上是稳定 aidl的定义,那何为不稳定的aidl呢?

如果使用核心构建系统构建接口(参考之前的AIDL backends文章**),或者设置了 unstable:true,则接口不稳定。**


修改为stable aidl

第一步 :

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值