Od 27 marca 2025 r. zalecamy używanie android-latest-release zamiast aosp-main do kompilowania i wspołtworzenia AOSP. Więcej informacji znajdziesz w artykule o zmianach w AOSP.
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
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.
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żące 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.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-07-27 UTC."],[],[],null,["# Configuration overview\n\nAOSP offers the following options for storing configuration information on a\ndevice:\n\n- System properties\n- Hardware abstraction layer (HAL) properties\n- System config XML files\n- Resource overlays (static and runtime)\n\nSystem properties\n-----------------\n\n*System properties* are string key/value pairs stored in the `build.prop`\nglobal dictionary. System properties are system-wide resources that are easy to\nuse and have a low performance overhead. When using system properties, you don't\nneed to use interprocess communication (IPC) even if a system property is shared\nacross multiple processes. However, system properties are similar to global\nvariables and can be harmful when misused. The misuse of system properties can\nresult in issues such as security vulnerabilities and apps becoming inaccessible\nto users. Before using system properties to store configuration information,\nconsider the other configuration options.\n\nFor further information on system properties, see\n[Add system properties](/docs/core/architecture/configuration/add-system-properties)\n| **Note:** Previous to Android 10, AOSP used a ConfigStore HAL to store system properties. ConfigStore HAL is deprecated and should no longer be used. For information on the ConfigStore HAL, refer to [ConfigStore HAL](/docs/core/architecture/configuration/archive).\n\nHAL properties\n--------------\n\nWhen the source of truth for a configuration is from a hardware component on a\ndevice, the HAL for the hardware must provide the information for that\ncomponent. Define a new HAL method in the existing HAL for accessing the\nconfiguration. For further information on developing a HAL, see\n[AIDL for HALs](/docs/core/architecture/aidl/aidl-hals).\n| **Note:** Don't configure the HAL to use system properties as a side-channel communication mechanism for HALs.\n\nSystem config XML files\n-----------------------\n\nWhen the configuration data is static but complicated (structured), consider\nusing XML or other such formats for the configuration data. Ensure that the\nfile schema remains stable. For XML files, you can use\n[`xsd_config`](/docs/core/architecture/config-file-schema-api#config-build-rule)\nto keep the schema stable, and to take advantage of an autogenerated XML\nparser.\n\nResource overlay\n----------------\n\nYou can use resource overlays to customize a product. There are two types of\nresource overlays:\n\n- *Standard resource overlay* used to customize a product at build time. Foris\n information on standard resource overlays, see\n [Customizing the build with resource overlays](/docs/setup/create/new-device#use-resource-overlays).\n\n- *Runtime resource overlay (RRO)* is used to change the resource values\n of a target package at runtime. For example, an app installed on the system\n image might change its behavior based upon the value of a resource. Rather than\n hardcoding the resource value at build time, an RRO installed on a different\n partition can change the values of the app's resources at runtime. For more\n information on RROs, see\n [Change the value of an app's resources at runtime](/docs/core/runtime/rros)."]]