AOSP 提供下列選項,可在裝置上儲存設定資訊:
- 系統屬性
- 硬體抽象層 (HAL) 屬性
- 系統設定 XML 檔案
- 資源疊加層 (靜態和執行階段)
系統屬性
系統屬性是儲存在 build.prop
全域字典中的字串鍵/值組合。系統屬性是全系統資源,易於使用且效能負擔較低。使用系統屬性時,即使系統屬性在多個程序之間共用,您也不需要使用程序間通訊 (IPC)。不過,系統屬性與全域變數類似,誤用時可能會造成危害。如果誤用系統屬性,可能會導致安全漏洞等問題,使用者也可能無法存取應用程式。使用系統屬性儲存設定資訊前,請先考慮其他設定選項。
如要進一步瞭解系統屬性,請參閱「新增系統屬性」。
HAL 屬性
如果設定的單一事實來源是裝置上的硬體元件,硬體 HAL 必須提供該元件的資訊。在現有 HAL 中定義新的 HAL 方法,以存取設定。如要進一步瞭解如何開發 HAL,請參閱「HAL 的 AIDL」。
系統設定 XML 檔案
如果設定資料是靜態但複雜 (結構化),請考慮使用 XML 或其他類似格式的設定資料。請確保檔案結構定義維持穩定。如果是 XML 檔案,您可以使用 xsd_config
確保架構穩定,並運用自動產生的 XML 剖析器。
資源覆蓋
你可以使用資源疊加層自訂產品。資源疊加層分為兩種:
標準資源疊加,用於在建構時自訂產品。如要瞭解標準資源疊加層,請參閱「使用資源疊加層自訂建構作業」。
執行階段資源疊加 (RRO) 可用於在執行階段變更目標套件的資源值。舉例來說,系統映像檔上安裝的應用程式可能會根據資源的值變更行為。在執行階段,安裝在不同分割區的 RRO 可以變更應用程式資源的值,而不是在建構時硬式編碼資源值。如要進一步瞭解 RRO,請參閱「在執行階段變更應用程式資源的值」。