配置概覽

AOSP 提供以下選項用於在設備上儲存設定資訊:

  • 系統屬性
  • 硬體抽象層 (HAL) 屬性
  • 系統配置 XML 文件
  • 資源覆蓋(靜態和運行時)

系統屬性

系統屬性是儲存在build.prop全域字典中的字串鍵/值對。系統屬性是系統範圍內的資源,易於使用且效能開銷較低。使用系統屬性時,即使系統屬性在多個進程之間共用,也不需要使用進程間通訊 (IPC)。但是,系統屬性與全域變數類似,濫用時可能會造成損害。濫用系統屬性可能會導致安全漏洞和使用者無法存取應用程式等問題。在使用系統屬性儲存配置資訊之前,請考慮其他配置選項。

有關係統屬性的更多信息,請參閱新增系統屬性

哈爾屬性

當配置的真實來源來自設備上的硬體組件時,硬體的 HAL 必須提供該組件的資訊。在現有 HAL 中定義新的 HAL 方法來存取設定。有關開發 HAL 的更多信息,請參閱HAL 的 AIDL

系統配置 XML 文件

當配置資料是靜態但複雜(結構化)時,請考慮使用 XML 或其他此類格式的配置資料。確保檔案架構保持穩定。對於 XML 文件,您可以使用xsd_config來保持架構穩定,並利用自動產生的 XML 解析器。

資源疊加

您可以使用資源疊加來自訂產品。資源覆蓋有兩種類型:

  • 用於在建造時定制產品的標準資源覆蓋。有關標準資源覆蓋的 Foris 信息,請參閱使用資源覆蓋自訂建置

  • 運行時資源覆蓋 (RRO)用於在運行時更改目標包的資源值。例如,安裝在系統映像上的應用程式可能會根據資源的值變更其行為。安裝在不同分割區上的 RRO 可以在執行時間變更應用程式資源的值,而不是在建置時對資源值進行硬編碼。有關 RRO 的更多信息,請參閱在運行時更改應用程式資源的值

,

AOSP 提供以下選項用於在設備上儲存設定資訊:

  • 系統屬性
  • 硬體抽象層 (HAL) 屬性
  • 系統配置 XML 文件
  • 資源覆蓋(靜態和運行時)

系統屬性

系統屬性是儲存在build.prop全域字典中的字串鍵/值對。系統屬性是系統範圍內的資源,易於使用且效能開銷較低。使用系統屬性時,即使系統屬性在多個進程之間共用,也不需要使用進程間通訊 (IPC)。但是,系統屬性與全域變數類似,濫用時可能會造成損害。濫用系統屬性可能會導致安全漏洞和使用者無法存取應用程式等問題。在使用系統屬性儲存配置資訊之前,請考慮其他配置選項。

有關係統屬性的更多信息,請參閱新增系統屬性

哈爾屬性

當配置的真實來源來自設備上的硬體組件時,硬體的 HAL 必須提供該組件的資訊。在現有 HAL 中定義新的 HAL 方法來存取設定。有關開發 HAL 的更多信息,請參閱HAL 的 AIDL

系統配置 XML 文件

當配置資料是靜態但複雜(結構化)時,請考慮使用 XML 或其他此類格式的配置資料。確保檔案架構保持穩定。對於 XML 文件,您可以使用xsd_config來保持架構穩定,並利用自動產生的 XML 解析器。

資源疊加

您可以使用資源疊加來自訂產品。資源覆蓋有兩種類型:

  • 用於在建造時定制產品的標準資源覆蓋。有關標準資源覆蓋的 Foris 信息,請參閱使用資源覆蓋自訂建置

  • 運行時資源覆蓋 (RRO)用於在運行時更改目標包的資源值。例如,安裝在系統映像上的應用程式可能會根據資源的值變更其行為。安裝在不同分割區上的 RRO 可以在執行時間變更應用程式資源的值,而不是在建置時對資源值進行硬編碼。有關 RRO 的更多信息,請參閱在運行時更改應用程式資源的值