Начиная с 27 марта 2025 г. мы рекомендуем использовать android-latest-release вместо aosp-main для создания и участия в AOSP. Дополнительные сведения см. в разделе Изменения в AOSP .
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
AOSP предлагает следующие варианты хранения информации о конфигурации на устройстве:
Свойства системы
Свойства уровня аппаратной абстракции (HAL)
XML-файлы конфигурации системы
Наложения ресурсов (статические и во время выполнения)
Свойства системы
Системные свойства — это пары строк «ключ/значение», хранящиеся в глобальном словаре build.prop . Системные свойства — это общесистемные ресурсы, которые просты в использовании и имеют низкую нагрузку на производительность. При использовании системных свойств вам не нужно использовать межпроцессное взаимодействие (IPC), даже если системное свойство используется несколькими процессами. Однако системные свойства похожи на глобальные переменные и могут быть вредны при неправильном использовании. Неправильное использование системных свойств может привести к таким проблемам, как уязвимости безопасности и недоступность приложений для пользователей. Перед использованием системных свойств для хранения информации о конфигурации рассмотрите другие параметры конфигурации.
Когда источником истины для конфигурации является аппаратный компонент на устройстве, HAL для оборудования должен предоставлять информацию для этого компонента. Определите новый метод HAL в существующем HAL для доступа к конфигурации. Для получения дополнительной информации о разработке HAL см. AIDL для HAL .
XML-файлы конфигурации системы
Если данные конфигурации статичны, но сложны (структурированы), рассмотрите возможность использования XML или других подобных форматов для данных конфигурации. Убедитесь, что схема файла остается стабильной. Для файлов XML можно использовать xsd_config , чтобы сохранить стабильность схемы и воспользоваться автоматически сгенерированным парсером XML.
Наложение ресурсов
Вы можете использовать наложения ресурсов для настройки продукта. Существует два типа наложений ресурсов:
Стандартный ресурсный оверлей используется для настройки продукта во время сборки. Для получения информации о стандартных ресурсных оверлеях см. Настройка сборки с ресурсными оверлеями .
Наложение ресурсов времени выполнения (RRO) используется для изменения значений ресурсов целевого пакета во время выполнения. Например, приложение, установленное на образе системы, может изменить свое поведение в зависимости от значения ресурса. Вместо того, чтобы жестко кодировать значение ресурса во время сборки, RRO, установленный на другом разделе, может изменять значения ресурсов приложения во время выполнения. Для получения дополнительной информации о RRO см. Изменение значения ресурсов приложения во время выполнения .
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-29 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-07-29 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)."]]