配置概述

AOSP 提供以下选项用于在设备上存储配置信息:

  • 系统属性
  • 硬件抽象层 (HAL) 属性
  • 系统配置 XML 文件
  • 资源覆盖(静态和运行时)

系统属性

系统属性是存储在build.prop全局字典中的字符串键/值对。系统属性是易于使用且性能开销较低的系统范围资源。使用系统属性时,即使系统属性在多个进程之间共享,也不需要使用进程间通信 (IPC)。但是,系统属性类似于全局变量,并且在滥用时可能是有害的。滥用系统属性可能会导致安全漏洞和用户无法访问应用程序等问题。在使用系统属性存储配置信息之前,请考虑其他配置选项。

有关系统属性的更多信息,请参阅添加系统属性

HAL 属性

当配置的真实来源来自设备上的硬件组件时,硬件的 HAL 必须提供该组件的信息。在现有 HAL 中定义新的 HAL 方法以访问配置。有关开发 HAL 的更多信息,请参阅 HAL 的AIDL

系统配置 XML 文件

当配置数据是静态但复杂(结构化)时,考虑使用 XML 或其他此类格式的配置数据。确保文件架构保持稳定。对于 XML 文件,您可以使用xsd_config来保持模式稳定,并利用自动生成的 XML 解析器。

资源叠加

您可以使用资源覆盖来自定义产品。有两种类型的资源覆盖:

  • 用于在构建时自定义产品的标准资源覆盖。 Foris 有关标准资源覆盖的信息,请参阅使用资源覆盖自定义构建

  • 运行时资源覆盖 (RRO)用于在运行时更改目标包的资源值。例如,安装在系统映像上的应用程序可能会根据资源的值更改其行为。安装在不同分区上的 RRO 可以在运行时更改应用程序资源的值,而不是在构建时硬编码资源值。有关 RRO 的更多信息,请参阅在运行时更改应用资源的值