為配合主幹穩定開發模型,並確保生態系統的平台穩定性,我們將於 2026 年起,在第 2 季和第 4 季將原始碼發布至 AOSP。如要建構及貢獻 AOSP,建議使用 android-latest-release,而非 aosp-main。android-latest-release 資訊清單分支版本一律會參照推送至 AOSP 的最新版本。詳情請參閱「Android 開放原始碼計畫變更」一文。
應用程序的兼容性 WAL(預寫日誌記錄)
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
Android 9 引入了一種名為 Compatibility WAL(預寫日誌記錄)的SQLiteDatabase特殊模式,該模式允許數據庫使用journal_mode=WAL ,同時保留每個數據庫最多保持一個連接的行為。
兼容性 WAL 默認情況下為應用程序的數據庫啟用,除非應用程序具有:
- 通過調用
SQLiteDatabase.enableWriteAheadLogging或disableWriteAheadLogging選擇加入或退出預寫日誌記錄 - 通過調用
SQLiteDatabase.OpenParams.setJournalMode(String mode)顯式請求日誌模式
啟用 WAL 日誌模式可以顯著提高性能並減少寫入量。例如,在 ext4 文件系統上,WAL 可以使寫入速度提高 4 倍。
兼容性 WAL 默認啟用,不需要任何額外的實現。
禁用兼容性 WAL
要禁用 Compatibility WAL 模式,請覆蓋db_compatibility_wal_supported配置資源。
例如:
<bool name="db_compatibility_wal_supported">false</bool>
對於 WAL 日誌模式不提供優於傳統回滾日誌模式的性能優勢的配置,您可能希望禁用兼容性 WAL。例如,在 F2FS 文件系統上,雖然 SQLite 支持原子寫入,並且 DELETE 日誌性能與 WAL 相似,但 WAL 可以將寫入量提高 10% 到 15%。
驗證
要驗證兼容性 WAL 模式,請從 CtsDatabaseTestCases 模塊運行CTS 測試。 CTS 測試將驗證啟用兼容性 WAL 時的預期行為。
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2022-06-06 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2022-06-06 (世界標準時間)。"],[],[]]