設定總覽

AOSP 提供下列選項,可在裝置上儲存設定資訊:

  • 系統屬性
  • 硬體抽象層 (HAL) 屬性
  • 系統設定 XML 檔案
  • 資源覆蓋層 (靜態和執行階段)

系統屬性

系統屬性是儲存在 build.prop 全域字典中的字串鍵/值組合。系統屬性是系統層級的資源,使用起來相當簡單,且效能開銷較低。使用系統屬性時,即使系統屬性會在多個程序之間共用,您也不需要使用程序間通訊 (IPC)。不過,系統屬性與全域變數相似,如果遭到濫用,可能會造成不良影響。濫用系統屬性可能會導致安全漏洞和應用程式無法供使用者存取等問題。在使用系統屬性儲存設定資訊之前,請考慮其他設定選項。

如要進一步瞭解系統屬性,請參閱「新增系統屬性」一文。

HAL 屬性

如果設定的來源是裝置上的硬體元件,則硬體的 HAL 必須提供該元件的資訊。在現有 HAL 中定義新的 HAL 方法,用於存取設定。如要進一步瞭解如何開發 HAL,請參閱「HAL 專用 AIDL」。

系統設定 XML 檔案

如果設定資料是靜態但複雜的結構化資料,建議您使用 XML 或其他類似格式儲存設定資料。請確認檔案結構定義保持穩定。針對 XML 檔案,您可以使用 xsd_config 保持架構穩定,並充分利用自動產生的 XML 剖析器。

資源覆蓋

您可以使用資源疊加層自訂產品。資源疊加層分為兩種類型:

  • 標準資源重疊:用於在建構期間自訂產品。如要瞭解標準資源疊加層資訊,請參閱「使用資源疊加層自訂建構作業」。

  • 執行階段資源重疊 (RRO) 可用於在執行階段變更目標套件的資源值。舉例來說,安裝在系統映像檔中的應用程式可能會根據資源值變更行為。在不同分區上安裝的 RRO 可在執行階段變更應用程式資源的值,而非在建構期間硬式編碼資源值。如要進一步瞭解 RRO,請參閱「在執行階段變更應用程式資源的值」。