AOSP oferuje 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 środowiska wykonawczego)
Właściwości systemowe
Właściwości systemu to pary klucz-wartość w formie ciągów znaków przechowywane w słowniku globalnym build.prop
. Właściwości systemowe to zasoby obejmujące cały system, które są łatwe w użyciu i mają niewielki wpływ na wydajność. W przypadku właściwości systemowych nie musisz używać komunikacji międzyprocesowej (IPC), nawet jeśli właściwość systemowa jest współdzielona w wielu procesach. Właściwości systemowe są jednak podobne do zmiennych globalnych i mogą być szkodliwe, jeśli są używane nieprawidłowo. Niewłaściwe użycie właściwości systemowych może powodować problemy, takie jak luki w zabezpieczeniach i niedostępność aplikacji dla użytkowników. Zanim zaczniesz używać właściwości systemu 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
Gdy źródłem informacji o konfiguracji jest komponent sprzętowy na urządzeniu, HAL tego komponentu musi dostarczać informacje o nim. Zdefiniuj nową metodę HAL w dotychczasowym HAL, aby uzyskać dostęp do konfiguracji. Więcej informacji o tworzeniu HAL znajdziesz w artykule AIDL dla HAL.
Pliki XML konfiguracji systemu
Jeśli dane konfiguracyjne są statyczne, ale złożone (uporządkowane), rozważ użycie formatu XML lub innego podobnego formatu. 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 automatycznie generowanego parsera XML.
Nakładka zasobów
Aby dostosować produkt, możesz użyć nakładek na zasoby. Istnieją 2 rodzaje nakładek na zasoby:
Standardowa nakładka zasobu używana do dostosowywania produktu w czasie kompilacji. Więcej informacji o standardowych nakładkach zasobów znajdziesz w artykule Dostosowywanie kompilacji za pomocą nakładek zasobów.
Nakładka zasobów w czasie działania (RRO) służy do zmiany wartości zasobów pakietu docelowego w czasie działania. Na przykład aplikacja zainstalowana w obrazie systemu może zmieniać swoje działanie w zależności od wartości zasobu. Zamiast zakodowywać wartość zasobu na stałe w czasie kompilacji, RRO zainstalowany na innej partycji może zmieniać wartości zasobów aplikacji w czasie działania. Więcej informacji o nakładkach zasobów środowiska wykonawczego znajdziesz w artykule Zmiana wartości zasobów aplikacji w czasie działania.