在根据标准 HAL 弃用时间表彻底弃用 health@1.0 之前,框架将继续支持 health@1.0。
废弃 health@1.0(即从框架兼容性矩阵中移除相关条目)后,也必须从系统中移除 healthd
和 libbatterymonitor
,以免 healthd 出现未知行为。由于 health@1.0 是可选 HAL,且 health@1.0 的所有 healthd
依赖项都受 NULL 检查的保护,因此废弃不得被任何事项打断。
根据废弃时间表,当 Android 移除旧版代码路径(healthd、health@1.0)时,Health@1.0 HAL 便会被废弃。此外,Android 还会移除以下内容:
- 框架中的 healthd 依赖项
- healthd
- 系统中的 health@1.0 HAL 定义库
- 框架兼容性矩阵中的 health@1.0 条目
移除 healthd
对于搭载 Android 9 以及升级到 Android 9 且在新的供应商映像中提供 Health 2.0 HAL 的设备,我们建议从系统映像中移除 healthd
,以便节省磁盘空间和加快启动速度。
为此,请执行以下操作:
从系统映像中移除
healthd
和healthd.rc
,方法是在 Soong 中向特定于设备的实现中添加以下行:cc_binary { name: "android.hardware.health@2.0-service.device_name" overrides: ["healthd"], // ... }
或者,如果模块在 Make 中:
LOCAL_MODULE_NAME := \ android.hardware.health@2.0-service.device_name LOCAL_OVERRIDES_MODULES := healthd
如果安装了默认实现
android.hardware.health@2.0-service
,请改为实现设备专用的android.hardware.health@2.0-service.device_name
。如需更多信息,请参阅实现 Health。