有一定經驗的開發者通常對文件管理相關的api應用或者底層邏輯都比較熟悉,但是關于文件管理服務的設計背景和設計目標可能了解得不那么清楚,本文旨在分享文件管理服務的設計背景及目標,方便廣大開發者更好地理解鴻蒙系統文件管理服務。
?
1 鴻蒙系統 文件管理設計背景
? ? ? ?隨著移動終端設備的崛起, 很多用戶不只有一臺設備,且隨著云空間的出現,單純地把文件存儲在某一臺設備上, 已經無法滿足用戶日常的使用訴求。例如在手機上拍攝的照片, 如果想在另一臺設備上查看, 就需要通過有線或無線的方式傳輸到該設備上。
? ? ? ?鴻蒙系統 從誕生之初就被賦予了面向全場景、分布式的使命, 打破了物理設備之間的隔離, 使文件不再孤立地屬于某一臺設備, 而是跟隨用戶, 隨時在各個設備之間、設備和云之間自由流動。
2 設計目標
? ? ? ?文件管理作為鴻蒙系統的基本功能模塊之一, 其整體設計目標是提供安全、易用、高效、統一的文件管理和訪問能力。
- 安全: 文件管理子系統定義了文件不同等級的加密模式。對于用戶程序的沙盒文件, 通過命名空間機制確保文件訪問的安全性; 對于公共用戶文件, 確保用戶程序只有在經過用戶的授權后才能被訪問, 且訪問遵循范圍最小最安全原則。
- 易用: 從用戶角度來講, 能夠清晰地按照類型對用戶數據予以多樣化展示; 從開發者角度來講, 文件操作接口簡單、一致。
- 高效: 文件高效地被組織才能實現快速訪問, 包括文件的創建、訪問、批量復制、移動、刪除等, 也包括跨端云、跨設備的文件訪問。
- 統一: 對外提供統一的文件選擇器體驗,用戶無須關心文件存儲在端側還是云側,無論通過哪個應用訪問,都可以通過統一的訪問方式,得到一致的結果(譬如顯示順序、顯示數量和排序方式等)。
文件管理, 以安全、易用、高效、統一為整體目標, 針對用戶和開發者, 設計和實現文件訪問、端云協同、全局搜索、存儲管理等4個維度的能力。文件管理整體能力如圖16-1所示。
2.1? 面向用戶的設計目標
? ? ? ? 面向用戶的設計目標主要體現為使用簡單、體驗一致。用戶訪問設備上的文件,包括查看和搜索存放在內置存儲設備、外置存儲設備, 以及在云側的文件, 查看不同類型的文件空間占用情況等。
- 基礎文件訪問包括文件分類管理, 目錄及歸屬清晰; 文件來源清晰直觀; 文件查看簡易快捷、訪問方式統一; 文件單一及批量操作高效;文件刪除有據可查、可追溯。
- 端云協同包括端云訪問操作簡單方便; 不同端云文件的訪問結果(如順序、數量、內容等) 應一致。
- 智能全局搜索包括可跨設備(端端、端云)搜索文件; 搜索包括基于文件名的模糊搜索, 基于時間、位置、人物畫像等的搜索, 基于文件內容的搜索等。
- 清晰的空間管理包括清晰地展示應用存儲空間的狀態;“冷數據”自動上云, 釋放本地存儲空間。
2.2 面向開發者的設計目標
? ? ? ? 面向開發者的設計目標主要體現為接口能力歸一、低成本接入云和分布式能力。HarmonyOS為開發者提供統一的文件訪問API, 明確的文件存放規則, 便捷的用戶文件選擇和保存能力, 以及文件檢索能力。
- 統一全局文件訪問API:沙盒化的設計, 為第三方應用提供統一的基于URI及FD 的訪問API; 對于公共用戶數據, 提供基于 Kit的訪問API; 端云、端端訪問無差別。
- 文件目錄結構設計約束:明確文件分類規則, 不同文件存放于不同目錄; 提供虛擬視圖, 統一展示存放在不同目錄下的同類型文件。
- 全局分享接口和全局文件選擇器:系統提供統一接口用于文件分享、打開、保存等; 針對不同類型文件分別提供一種統一的文件選擇器; 文件選擇器覆蓋端云、端端、云盤。
- 全局檢索:提供統一的應用文件注冊能力, 支持應用快速接入搜索引擎; 提供端云、端端的文件搜索能力, 支持基于內容、基于分類等的文件索引注入能力。
- 分級存儲:文件全生命周期管理和智能分級。
?
注:以上內容來自于《鴻蒙操作系統設計原理與架構》一書。