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