Omówienie konfiguracji

AOSP udostępnia te opcje przechowywania informacji o konfiguracji na urządzeniu:

  • Właściwości systemowe
  • Właściwości warstwy abstrakcji sprzętowej (HAL)
  • Pliki XML konfiguracji systemu
  • Nakładki zasobów (statyczne i w czasie wykonywania)

Właściwości systemowe

Właściwości systemowe to pary klucz-wartość łańcucha znaków przechowywane w build.propglobalnym słowniku. Właściwości systemowe to zasoby dostępne w całym systemie, które są łatwe w użyciu i nie obciążają wydajności. Podczas korzystania z właściwości systemowych nie trzeba używać komunikacji międzyprocesowej (IPC), nawet jeśli dana właściwość systemowa jest współdzielona przez kilka procesów. Właściwości systemowe są jednak podobne do zmiennych globalnych i w przypadku niewłaściwego użycia mogą być szkodliwe. Niewłaściwe używanie właściwości systemowych może spowodować problemy takie jak luki w zabezpieczeniach czy niedostępność aplikacji dla użytkowników. Zanim użyjesz właściwości systemowych do przechowywania informacji o konfiguracji, rozważ inne opcje konfiguracji.

Więcej informacji o właściwościach systemowych znajdziesz w artykule Dodawanie właściwości systemowych.

Właściwości HAL

Jeśli źródło informacji o konfiguracji pochodzi z komponentu sprzętowego na urządzeniu, informacje o tym komponencie muszą być podane w interfejsie HAL. Zdefiniuj w dotychczasowym pliku HAL nową metodę HAL do uzyskiwania dostępu do konfiguracji. Więcej informacji o tworzeniu interfejsu HAL znajdziesz w artykule AIDL dla interfejsów HAL.

Pliki XML konfiguracji systemu

Jeśli dane konfiguracji są statyczne, ale skomplikowane (uporządkowane), rozważ użycie formatu XML lub innego podobnego. Upewnij się, że schemat pliku pozostaje stabilny. W przypadku plików XML możesz użyć xsd_config, aby zachować stabilność schematu i korzystać z automatycznego parsowania XML.

Nakładka zasobów

Możesz używać nakładek zasobów, aby dostosować produkt. Istnieją 2 rodzaje nakładek zasobów:

  • Standardowe nakładanie zasobów służy do dostosowywania produktu w czasie kompilacji. Informacje o standardowych nakładkach zasobów znajdziesz w artykule Dostosowywanie wersji za pomocą nakładek zasobów.

  • Nakładka zasobów w czasie wykonywania (RRO) służy do zmiany wartości zasobów pakietu docelowego w czasie wykonywania. Na przykład aplikacja zainstalowana w systemie może zmieniać swoje działanie w zależności od wartości zasobu. Zamiast twardego kodowania wartości zasobu w czasie kompilacji, RRO zainstalowany na innej partycji może zmieniać wartości zasobów aplikacji w czasie wykonywania. Więcej informacji o zmianach wartości zasobów aplikacji w czasie wykonywania znajdziesz w artykule Zmienianie wartości zasobów aplikacji w czasie wykonywania.