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