Framework będzie nadal działać z health@1.0, dopóki nie zostanie całkowicie wycofany zgodnie ze standardowym harmonogramem wycofywania HAL.
Gdy interfejs health@1.0 zostanie wycofany (rekord zostanie usunięty z macierzy zgodności frameworka), healthd
i libbatterymonitor
należy również usunąć z systemu, aby uniknąć nieznanych zachowań w przypadku interfejsu healthd. health@1.0 to opcjonalny interfejs HAL, a wszystkie zależności od niego są chronione przez sprawdzanie wartości NULL, więc nic nie powinno się zepsuć w przypadku wycofania.healthd
Gdy Android usunie starszy kod (healthd, health@1.0), interfejs HAL Health@1.0 zostanie wycofany zgodnie z harmonogramem. Dodatkowo Android usuwa te elementy:
- sprawna zależność w ramach platformy
- w dobrym stanie
- health@1.0 – biblioteka definicji HAL z systemu
- wpis health@1.0 w ramach macierzy zgodności
Usuń healthd
W przypadku urządzeń z Androidem 9 i urządzeń, które są aktualizowane do Androida 9, a które zawierają interfejs HAL Health 2.0 w nowym obrazie dostawcy, zalecamy usunięcie healthd
z obrazu systemu, aby zaoszczędzić miejsce na dysku i przyspieszyć czas uruchamiania.
Aby to zrobić:
Usuń
healthd
ihealthd.rc
z obrazu systemu, dodając ten wiersz do implementacji na dane urządzenie w Soong:cc_binary { name: "android.hardware.health@2.0-service.device_name" overrides: ["healthd"], // ... }
Jeśli moduł znajduje się w Make:
LOCAL_MODULE_NAME := \ android.hardware.health@2.0-service.device_name LOCAL_OVERRIDES_MODULES := healthd
Jeśli zainstalowana jest domyślna implementacja
android.hardware.health@2.0-service
, zaimplementujandroid.hardware.health@2.0-service.device_name
na potrzeby konkretnego urządzenia. Więcej informacji znajdziesz w artykule Wdrażanie funkcji stanu.