AOSP предлагает следующие варианты хранения информации о конфигурации на устройстве:
- Свойства системы
- Свойства уровня аппаратной абстракции (HAL)
- XML-файлы конфигурации системы
- Наложения ресурсов (статические и во время выполнения)
Свойства системы
Системные свойства представляют собой строковые пары «ключ/значение», хранящиеся в глобальном словаре build.prop
. Системные свойства — это общесистемные ресурсы, которые просты в использовании и не оказывают существенного влияния на производительность. При использовании системных свойств не требуется межпроцессное взаимодействие (IPC), даже если системное свойство используется несколькими процессами. Однако системные свойства аналогичны глобальным переменным и могут быть опасны при неправильном использовании. Неправильное использование системных свойств может привести к таким проблемам, как уязвимости безопасности и недоступность приложений для пользователей. Прежде чем использовать системные свойства для хранения информации о конфигурации, рассмотрите другие варианты конфигурации.
Дополнительную информацию о свойствах системы см. в разделе Добавление свойств системы.
Свойства HAL
Если источником истинной конфигурации является аппаратный компонент устройства, HAL для этого оборудования должен предоставлять информацию об этом компоненте. Определите новый метод HAL в существующем HAL для доступа к конфигурации. Дополнительную информацию о разработке HAL см. в разделе AIDL для HAL .
XML-файлы конфигурации системы
Если данные конфигурации статические, но сложные (структурированные), рассмотрите возможность использования XML или других подобных форматов для хранения данных конфигурации. Убедитесь, что схема файла остаётся стабильной. Для XML-файлов можно использовать xsd_config
, чтобы поддерживать стабильность схемы и использовать автоматически сгенерированный XML-анализатор.
Наложение ресурсов
Вы можете использовать наложения ресурсов для персонализации продукта. Существует два типа наложений ресурсов:
Стандартный оверлей ресурсов используется для настройки продукта во время сборки. Подробнее о стандартных оверлеях ресурсов см. в разделе «Настройка сборки с помощью оверлеев ресурсов» .
Наложение ресурсов выполнения (RRO) используется для изменения значений ресурсов целевого пакета во время выполнения. Например, приложение, установленное в образе системы, может изменять своё поведение в зависимости от значения ресурса. Вместо того, чтобы жёстко задавать значение ресурса во время сборки, наложение ресурсов выполнения, установленное в другом разделе, может изменять значения ресурсов приложения во время выполнения. Подробнее о наложении ресурсов выполнения см. в разделе Изменение значения ресурсов приложения во время выполнения .