废弃 health@1.0

在根据标准 HAL 弃用时间表彻底弃用 health@1.0 之前,框架将继续支持 health@1.0。 废弃 health@1.0(即从框架兼容性矩阵中移除相关条目)后,也必须从系统中移除 healthdlibbatterymonitor,以免 healthd 出现未知行为。由于 health@1.0 是可选 HAL,且 health@1.0 的所有 healthd 依赖项都受 NULL 检查的保护,因此废弃不得被任何事项打断。

根据废弃时间表,当 Android 移除旧版代码路径(healthd、health@1.0)时,Health@1.0 HAL 便会被废弃。此外,Android 还会移除以下内容:

  1. 框架中的 healthd 依赖项
  2. healthd
  3. 系统中的 health@1.0 HAL 定义库
  4. 框架兼容性矩阵中的 health@1.0 条目

移除 healthd

对于搭载 Android 9 以及升级到 Android 9 且在新的供应商映像中提供 Health 2.0 HAL 的设备,我们建议从系统映像中移除 healthd,以便节省磁盘空间和加快启动速度。

为此,请执行以下操作:

  1. 从系统映像中移除 healthdhealthd.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