Struktura będzie nadal działać z health@1.0, dopóki nie zostanie całkowicie przestarzała zgodnie ze standardowym harmonogramem wycofywania HAL . Kiedy health@1.0 jest przestarzały (wpis został usunięty z macierzy zgodności frameworka ), healthd
i libbatterymonitor
muszą zostać również usunięte z systemu, aby uniknąć nieznanych zachowań healthd. Ponieważ health@1.0 jest opcjonalną warstwą HAL, a wszystkie zależności healthd
od health@1.0 są chronione przez kontrole NULL, nic nie powinno się psuć w przypadku przestarzałości.
Gdy system Android usunie starszą ścieżkę kodu (healthd, health@1.0), warstwa HAL Health@1.0 stanie się przestarzała zgodnie z harmonogramem wycofywania. Ponadto Android usuwa również następujące elementy:
- Healthd zależność w ramach
- zdrowy
- health@1.0 Biblioteka definicji HAL z systemu
- wpis health@1.0 w macierzy kompatybilności frameworka
Usuń zdrowe
W przypadku urządzeń uruchamianych z systemem Android 9 i urządzeń aktualizujących się do systemu Android 9, które zapewniają warstwę Health 2.0 HAL w obrazie nowego 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 specyficzną dla urządzeniaandroid.hardware.health@2.0-service.device_name
. Aby uzyskać więcej informacji, zobacz Implementowanie kondycji .