Фреймворк будет продолжать работать с Health@1.0 до тех пор, пока он не будет полностью объявлен устаревшим в соответствии со стандартным графиком устаревания HAL . Когда health@1.0 устарел (запись удалена из матрицы совместимости фреймворков ), healthd и libbatterymonitor также должны быть удалены из системы, чтобы избежать неизвестного поведения для healthd. Поскольку Health@1.0 является необязательным HAL, а все зависимости healthd от Health@1.0 защищены проверками NULL, ничто не должно сломаться при устаревании.
Когда Android удаляет устаревший путь кода (healthd, health@1.0), HAL Health@1.0 устаревает в соответствии с графиком устаревания. Кроме того, Android также удаляет следующее:
- зависимость healthd в фреймворке
- здоровье
- Health@1.0 библиотека определений HAL из системы
- запись Health@1.0 в матрице совместимости фреймворка
Удаление здоровья
Для устройств, запускаемых с Android 9, и устройств, обновленных до Android 9, которые предоставляют HAL Health 2.0 в новом образе поставщика, мы рекомендуем удалить 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.device_name, вместо нее реализуйтеandroid.hardware.health@2.0-serviceдля конкретного устройства. Дополнительные сведения см. в разделе Реализация работоспособности .