Struktura będzie nadal działać z health@1.0, dopóki nie zostanie w pełni przestarzała zgodnie ze standardowym harmonogramem wycofywania warstwy HAL . Gdy health@1.0 jest przestarzałe (wpis usunięty z macierzy kompatybilności frameworka ), healthd
i libbatterymonitor
muszą być również usunięte z systemu, aby uniknąć nieznanych zachowań dla healthd. Ponieważ health@1.0 jest opcjonalną warstwą HAL, a wszystkie uzależnione od zdrowia zależności healthd
są chronione przez kontrole NULL, nic nie powinno się zepsuć po wycofaniu.
Gdy system Android usunie starszą ścieżkę kodu (zdrowa, kondycja @ 1,0), warstwa HAL Health @ 1,0 jest przestarzała zgodnie z harmonogramem wycofywania. Ponadto Android usuwa również następujące elementy:
- zdrowa zależność w ramach
- zdrowy
- health@1.0 Biblioteka definicji HAL z systemu
- health@1.0 wpis w macierzy kompatybilności frameworka
Usuwanie zdrowych
W przypadku urządzeń uruchamianych z systemem Android 9 i urządzeń uaktualniających do systemu Android 9, które zapewniają warstwę 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 następujący wiersz do implementacji specyficznej dla urządzenia w Soong:cc_binary { name: "android.hardware.health@2.0-service.device_name" overrides: ["healthd"], // ... }
Lub, jeśli moduł jest 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
, zamiast tego zaimplementuj specyficzne dla urządzeniaandroid.hardware.health@2.0-service.device_name
. Aby uzyskać więcej informacji, zobacz temat Implementacja kondycji .