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