AOSP 提供以下选项,以供在设备端存储配置信息:
- 系统属性
- 硬件抽象层 (HAL) 属性
- 系统配置 XML 文件
- 资源叠加层(静态和运行时)
系统属性
系统属性是存储在 build.prop
全局字典中的字符串键值对。系统属性是易于使用且性能开销较低的系统级资源。使用系统属性时,即使系统属性在多个进程之间共享,您也无需使用进程间通信 (IPC)。不过,系统属性与全局变量类似,若被滥用便会造成损害。滥用系统属性可能会导致出现安全漏洞以及应用无法被用户访问等问题。在使用系统属性存储配置信息之前,请考虑其他配置选项。
如需详细了解系统属性,请参阅添加系统属性
HAL 属性
当配置的可信来源来自设备上的硬件组件时,硬件 HAL 必须提供该组件的信息。请在现有 HAL 中定义新的 HAL 方法以访问配置。如需详细了解如何开发 HAL,请参阅适用于 HAL 的 AIDL。
系统配置 XML 文件
如果配置数据是静态数据但非常复杂(结构化数据),请考虑为配置数据使用 XML 或其他此类格式。确保文件架构保持稳定。对于 XML 文件,您可以使用 xsd_config
使架构保持稳定,并利用自动生成的 XML 解析器。
资源叠加层
您可以使用资源叠加层来自定义产品。资源叠加层有两种类型:
标准资源叠加层,用于在构建时自定义产品。如需了解标准资源叠加层,请参阅利用资源叠加层自定义 build。
运行时资源叠加层 (RRO) 用于在运行时更改目标软件包的资源值。例如,安装在系统映像上的应用可能会根据资源值更改其行为。安装在不同分区中的 RRO 可能会在运行时更改应用的资源值,而不是在构建时硬编码资源值。如需详细了解 RRO,请参阅在运行时更改应用资源的值。