鴻蒙系統文件管理基礎服務的設計背景和設計目標

有一定經驗的開發者通常對文件管理相關的api應用或者底層邏輯都比較熟悉,但是關于文件管理服務的設計背景和設計目標可能了解得不那么清楚,本文旨在分享文件管理服務的設計背景及目標,方便廣大開發者更好地理解鴻蒙系統文件管理服務。

?

1 鴻蒙系統 文件管理設計背景
? ? ? ?隨著移動終端設備的崛起, 很多用戶不只有一臺設備,且隨著云空間的出現,單純地把文件存儲在某一臺設備上, 已經無法滿足用戶日常的使用訴求。例如在手機上拍攝的照片, 如果想在另一臺設備上查看, 就需要通過有線或無線的方式傳輸到該設備上。
? ? ? ?鴻蒙系統 從誕生之初就被賦予了面向全場景、分布式的使命, 打破了物理設備之間的隔離, 使文件不再孤立地屬于某一臺設備, 而是跟隨用戶, 隨時在各個設備之間、設備和云之間自由流動。


2 設計目標
? ? ? ?文件管理作為鴻蒙系統的基本功能模塊之一, 其整體設計目標是提供安全、易用、高效、統一的文件管理和訪問能力。

  • 安全: 文件管理子系統定義了文件不同等級的加密模式。對于用戶程序的沙盒文件, 通過命名空間機制確保文件訪問的安全性; 對于公共用戶文件, 確保用戶程序只有在經過用戶的授權后才能被訪問, 且訪問遵循范圍最小最安全原則。
  • 易用: 從用戶角度來講, 能夠清晰地按照類型對用戶數據予以多樣化展示; 從開發者角度來講, 文件操作接口簡單、一致。
  • 高效: 文件高效地被組織才能實現快速訪問, 包括文件的創建、訪問、批量復制、移動、刪除等, 也包括跨端云、跨設備的文件訪問。
  • 統一: 對外提供統一的文件選擇器體驗,用戶無須關心文件存儲在端側還是云側,無論通過哪個應用訪問,都可以通過統一的訪問方式,得到一致的結果(譬如顯示順序、顯示數量和排序方式等)。

文件管理, 以安全、易用、高效、統一為整體目標, 針對用戶和開發者, 設計和實現文件訪問、端云協同、全局搜索、存儲管理等4個維度的能力。文件管理整體能力如圖16-1所示。

2.1? 面向用戶的設計目標
? ? ? ? 面向用戶的設計目標主要體現為使用簡單、體驗一致。用戶訪問設備上的文件,包括查看和搜索存放在內置存儲設備、外置存儲設備, 以及在云側的文件, 查看不同類型的文件空間占用情況等。

  • 基礎文件訪問包括文件分類管理, 目錄及歸屬清晰; 文件來源清晰直觀; 文件查看簡易快捷、訪問方式統一; 文件單一及批量操作高效;文件刪除有據可查、可追溯。
  • 端云協同包括端云訪問操作簡單方便; 不同端云文件的訪問結果(如順序、數量、內容等) 應一致。
  • 智能全局搜索包括可跨設備(端端、端云)搜索文件; 搜索包括基于文件名的模糊搜索, 基于時間、位置、人物畫像等的搜索, 基于文件內容的搜索等。
  • 清晰的空間管理包括清晰地展示應用存儲空間的狀態;“冷數據”自動上云, 釋放本地存儲空間。

2.2 面向開發者的設計目標
? ? ? ? 面向開發者的設計目標主要體現為接口能力歸一、低成本接入云和分布式能力。HarmonyOS為開發者提供統一的文件訪問API, 明確的文件存放規則, 便捷的用戶文件選擇和保存能力, 以及文件檢索能力。

  • 統一全局文件訪問API:沙盒化的設計, 為第三方應用提供統一的基于URI及FD 的訪問API; 對于公共用戶數據, 提供基于 Kit的訪問API; 端云、端端訪問無差別。
  • 文件目錄結構設計約束:明確文件分類規則, 不同文件存放于不同目錄; 提供虛擬視圖, 統一展示存放在不同目錄下的同類型文件。
  • 全局分享接口和全局文件選擇器:系統提供統一接口用于文件分享、打開、保存等; 針對不同類型文件分別提供一種統一的文件選擇器; 文件選擇器覆蓋端云、端端、云盤。
  • 全局檢索:提供統一的應用文件注冊能力, 支持應用快速接入搜索引擎; 提供端云、端端的文件搜索能力, 支持基于內容、基于分類等的文件索引注入能力。
  • 分級存儲:文件全生命周期管理和智能分級。

?

注:以上內容來自于《鴻蒙操作系統設計原理與架構》一書。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/64192.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/64192.shtml
英文地址,請注明出處:http://en.pswp.cn/web/64192.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何配置 Java 環境變量:設置 JAVA_HOME 和 PATH

目錄 一、什么是 Java 環境變量? 二、配置 Java 環境變量 1. 下載并安裝 JDK 2. 配置 JAVA_HOME Windows 系統 Linux / macOS 系統 3. 配置 PATH Windows 系統 Linux / macOS 系統 4. 驗證配置 三、常見問題與解決方案 1. 無法識別 java 或 javac 命令 …

Doris 數據庫外部表-JDBC 外表,Oracle to Doris

簡介 提供了 Doris 通過數據庫訪問的標準接口 (JDBC) 來訪問外部表,外部表省去了繁瑣的數據導入工作,讓 Doris 可以具有了訪問各式數據庫的能力,并借助 Doris 本身的 OLAP 的能力來解決外部表的數據分析問題: 支持各種數據源接入…

分布式 IO 模塊助力沖壓機械臂產線實現智能控制

在當今制造業蓬勃發展的浪潮中,沖壓機械臂產線的智能化控制已然成為提升生產效率、保障產品質量以及增強企業競爭力的關鍵所在。而分布式 IO 模塊的應用,正如同為這條產線注入了一股強大的智能動力,開啟了全新的高效生產篇章。 傳統挑戰 沖壓…

CSS系列(37)-- Overscroll Behavior詳解

前端技術探索系列:CSS Overscroll Behavior詳解 📱 致讀者:探索滾動交互的藝術 👋 前端開發者們, 今天我們將深入探討 CSS Overscroll Behavior,這個強大的滾動行為控制特性。 基礎概念 🚀 …

深度學習中的并行策略概述:4 Tensor Parallelism

深度學習中的并行策略概述:4 Tensor Parallelism 使用 PyTorch 實現 Tensor Parallelism 。首先定義了一個簡單的模型 SimpleModel,它包含兩個全連接層。然后,本文使用 torch.distributed.device_mesh 初始化了一個設備網格,這代…

企業銷售人員培訓系統|Java|SSM|VUE| 前后端分離

【技術棧】 1??:架構: B/S、MVC 2??:系統環境:Windowsh/Mac 3??:開發環境:IDEA、JDK1.8、Maven、Mysql5.7 4??:技術棧:Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5??數據庫…

vue 本地自測iframe通訊

使用 postMessage API 來實現跨窗口(跨域)的消息傳遞。postMessage 允許你安全地發送消息到其他窗口,包括嵌套的 iframe,而不需要擔心同源策略的問題。 發送消息(父應用) 1. 父應用:發送消息給…

Linux:code:network:devinet_sysctl_forward;IN_DEV_FORWARD

文章目錄 簡介sysctl 設置使用,arp_process間接使用IN_DEV_RX_REDIRECTSdev_disable_lro簡介 最近在看Linux里的forwarding的功能。順便在這里總結一下。有些詳細代碼邏輯,如果可以記錄一下,會好一點。 sysctl 設置 這個函數在查看的時候需要注意的問題:變量名起的有點簡…

自然語言處理與知識圖譜的融合與應用

目錄 前言1. 知識圖譜與自然語言處理的關系1.1 知識圖譜的定義與特點1.2 自然語言處理的核心任務1.3 二者的互補性 2. NLP在知識圖譜構建中的應用2.1 信息抽取2.1.1 實體識別2.1.2 關系抽取2.1.3 屬性抽取 2.2 知識融合2.3 知識推理 3. NLP與知識圖譜融合的實際應用3.1 智能問答…

PHP 數組

PHP 數組 PHP 是一種流行的服務器端編程語言,它提供了強大的數組處理能力。PHP 數組是一種數據結構,用于存儲相同類型或不同類型的多個值。在 PHP 中,數組可以分為一維數組、二維數組和多維數組。本文將詳細介紹 PHP 數組的各種操作&#xf…

CSS(三)盒子模型

目錄 Content Padding Border Margin 盒子模型計算方式 使用 box-sizing 屬性控制盒子模型的計算 所有的HTML元素都可以看作像下圖這樣一個矩形盒子: 這個模型包括了四個區域:content(內容區域)、padding(內邊距…

基于NodeMCU的物聯網窗簾控制系統設計

最終效果 基于NodeMCU的物聯網窗簾控制系統設計 項目介紹 該項目是“物聯網實驗室監測控制系統設計(仿智能家居)”項目中的“家電控制設計”中的“窗簾控制”子項目,最前者還包括“物聯網設計”、“環境監測設計”、“門禁系統設計計”和“小…

有沒有免費提取音頻的軟件?音頻編輯軟件介紹!

出于工作和生活娛樂等原因,有時候我們需要把音頻單獨提取出來(比如歌曲伴奏、人聲清唱等、樂器獨奏等)。要提取音頻必須借助音頻處理軟件,那么有沒有免費提取音頻的軟件呢?下面我們將為大家介紹幾款免費軟件&#xff0…

WPF自定義窗口 輸入驗證不生效

WPF自定義窗口 輸入驗證不生效 WPF ValidationRule 不生效 WPF ValidationRule 不生效 解決方案&#xff1a;在WindowStyle的Template中添加AdornerDecorator標簽。 <Style x:Key"WindowStyle1" TargetType"{x:Type Window}"><Setter Property&…

【保姆式】python調用api通過機器人發送文件到飛書指定群聊

當前飛書webhook機器人還不支持發送文件類型的群消息&#xff0c;它目前僅支持文本&#xff0c;富文本&#xff0c;卡片等文字類型的數據。 我們可以申請創建一個機器人應用來實現群發送文件消息。 創建飛書應用 創建飛書應用、配置權限、添加機器人 來到飛書開發者后臺 創建…

MySQL-存儲過程(頭歌數據庫實驗題)

&#xff08;學校數據庫課程的頭歌平臺實驗題&#xff0c;根據自己理解編寫&#xff0c;希望對正在學的人有啟發作用和借鑒幫助&#xff0c;不喜勿噴&#xff0c;有錯請聯系改正&#xff09; 實驗 存儲過程&#xff1a;輸入1 任務描述&#xff1a; 本關任務&#xff1a;編寫…

GitLab 服務變更提醒:中國大陸、澳門和香港用戶停止提供服務(GitLab 服務停止)

目錄 前言 一. 變更詳情 1. 停止服務區域 2. 郵件通知 3. 新的服務提供商 4. 關鍵日期 5. 行動建議 二. 遷移指南 三. 注意事項 四. 相關推薦 前言 近期&#xff0c;許多位于中國大陸、澳門和香港的 GitLab 用戶收到了一封來自 GitLab 官方的重要通知。根據這封郵件…

mysql基礎快速入門

通用語法及分類 DDL: 數據定義語言&#xff0c;用來定義數據庫對象&#xff08;數據庫、表、字段&#xff09;DML: 數據操作語言&#xff0c;用來對數據庫表中的數據進行增刪改DQL: 數據查詢語言&#xff0c;用來查詢數據庫中表的記錄DCL: 數據控制語言&#xff0c;用來創建數…

Python文件讀寫在“簡易記事本”項目中的應用

Python文件讀寫在“簡易記事本”項目中的應用 文件讀寫是“簡易記事本”項目實現數據持久化的關鍵部分。在本節中&#xff0c;我們將逐步拆解記事本的功能&#xff0c;詳細講解與文件讀寫相關的代碼&#xff0c;并結合實際操作幫助讀者更好地理解文件操作的核心知識點。 功能…

【Agent】AutoGen Studio2.0開源框架-UI層環境安裝+詳細操作教程(從0到1帶跑通智能體AutoGen Studio)

&#x1f4a5; 歡迎來到我的博客&#xff01;很高興能在這里與您相遇&#xff01; 首頁&#xff1a;GPT-千鑫 – 熱愛AI、熱愛Python的天選打工人&#xff0c;活到老學到老&#xff01;&#xff01;&#xff01;導航 - 人工智能系列&#xff1a;包含 OpenAI API Key教程, 50個…