Обзор конфигурации

AOSP предлагает следующие варианты хранения информации о конфигурации на устройстве:

  • Свойства системы
  • Свойства уровня аппаратной абстракции (HAL)
  • XML-файлы конфигурации системы
  • Наложения ресурсов (статические и во время выполнения)

Свойства системы

Системные свойства представляют собой строковые пары «ключ/значение», хранящиеся в глобальном словаре build.prop . Системные свойства — это общесистемные ресурсы, которые просты в использовании и не оказывают существенного влияния на производительность. При использовании системных свойств не требуется межпроцессное взаимодействие (IPC), даже если системное свойство используется несколькими процессами. Однако системные свойства аналогичны глобальным переменным и могут быть опасны при неправильном использовании. Неправильное использование системных свойств может привести к таким проблемам, как уязвимости безопасности и недоступность приложений для пользователей. Прежде чем использовать системные свойства для хранения информации о конфигурации, рассмотрите другие варианты конфигурации.

Дополнительную информацию о свойствах системы см. в разделе Добавление свойств системы.

Свойства HAL

Если источником истинной конфигурации является аппаратный компонент устройства, HAL для этого оборудования должен предоставлять информацию об этом компоненте. Определите новый метод HAL в существующем HAL для доступа к конфигурации. Дополнительную информацию о разработке HAL см. в разделе AIDL для HAL .

XML-файлы конфигурации системы

Если данные конфигурации статические, но сложные (структурированные), рассмотрите возможность использования XML или других подобных форматов для хранения данных конфигурации. Убедитесь, что схема файла остаётся стабильной. Для XML-файлов можно использовать xsd_config , чтобы поддерживать стабильность схемы и использовать автоматически сгенерированный XML-анализатор.

Наложение ресурсов

Вы можете использовать наложения ресурсов для персонализации продукта. Существует два типа наложений ресурсов:

  • Стандартный оверлей ресурсов используется для настройки продукта во время сборки. Подробнее о стандартных оверлеях ресурсов см. в разделе «Настройка сборки с помощью оверлеев ресурсов» .

  • Наложение ресурсов выполнения (RRO) используется для изменения значений ресурсов целевого пакета во время выполнения. Например, приложение, установленное в образе системы, может изменять своё поведение в зависимости от значения ресурса. Вместо того, чтобы жёстко задавать значение ресурса во время сборки, наложение ресурсов выполнения, установленное в другом разделе, может изменять значения ресурсов приложения во время выполнения. Подробнее о наложении ресурсов выполнения см. в разделе Изменение значения ресурсов приложения во время выполнения .