aidl for hal - stable AIDL
Android 10 新增了稳定版 AIDL 支持,这是一种跟踪 AIDL 接口 API 和 ABI 的新方法。稳定版 AIDL 工作方式与 AIDL 相同,但构建系统会跟踪接口兼容性并限制某些操作:接口在构建系统中通过 aidl_interfaces 定义。稳定版 AIDL 接口只能包含结构化数据类型,构建系统会基于 AIDL 定义自动生成 Parcelable 类并处理所有的编组和解组操作,开发者无需手动实现 writeToParcel()、createFromParcel() 等方法,只需定义数据结构即可直接使用。parcelable 声明(自定义 parcelable)不是结构化 AIDL。在 AIDL 中定义了字段的 Parcelables 才称为结构化 parcelables对于 boolean、char、float、double、byte、int、long 和 String 类型,支持(但不要求)设置默认值。从 Android 12 开始,也支持为用户定义的枚举设置默认值。当未指定默认值时,会使用类似 0 或空值。没有默认值的枚举会被初始化为 0,即使不存在值为零的枚举项。接口可以声明为稳定版(向后兼容)。构建系统会在 AIDL 接口旁边自动生成并维护 API 版本记录文件,跟踪每个版本的完整定义。当修改接口时,系统会对比新旧版本确保向后兼容,任何破坏兼容性的修改(如删除方法、修改签名)都会导致构建失败,从而保证 HAL 接口的稳定性和系统的安全升级。以上是稳定 aidl的定义,那何为不稳定的aidl呢?如果使用核心构建系统构建接口(参考之前的AIDL backends文章**),或者设置了unstable:true,则接口不稳定。**修改为stable aidl第一步 :
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2441684.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!