Android 文件管理】分區存儲 ( 分區存儲機制 和 文件索引數據 )

      網友投稿 923 2022-05-29

      文章目錄

      一、Android 10 以前的存儲機制

      二、Android 10 及以后的分區存儲機制

      三、Android 10 中的存儲過渡方案

      四、文件索引數據庫

      五、相關文檔資料

      一、Android 10 以前的存儲機制

      Android 10 10 10 之前的文件系統 , 內存分為兩塊 ,

      應用私有目錄

      , 和

      共享存儲空間

      ;

      私有目錄 : 只能保存本應用的數據 ,

      其它應用無法讀寫該目錄中的數據 ,

      應用卸載時 , 該目錄自動刪除 ;

      共享存儲空間 :

      所有的應用都可以隨意訪問 , 隨意讀寫該區域內的數據

      , 數據可以任意放置 , 刪除 , 修改 ;

      應用卸載時寫出到該區域的數據不會被刪除 ;

      任何目錄可以存儲任何類型文件 , 可以將圖片存儲到 Movies , 視頻存儲到 Music 目錄中 ;

      共享存儲空間 絕對是個 天坑 , 能不用盡量不用 ;

      二、Android 10 及以后的分區存儲機制

      Android 10 10 10 及以后的文件系統 :

      私有目錄 : 與之前保持一致 , 只能保存本應用的數據 ,

      其它應用無法讀寫該目錄中的數據 ,

      應用卸載時 , 該目錄自動刪除 ;

      共享存儲空間 : Google 官方對該存儲區域進行了統一規劃 , Android 11 11 11 中 , 每個目錄存儲什么類型的文件 , 都有相應規范 , 文件不能亂放置 ;

      文件存儲類型限制 : 文件一旦放錯位置 , 就會拋異常 ;

      專門存儲 圖片文件 的目錄

      Pictures

      , 只能存放圖片 , 不能存放其它類型文件 ,

      專門存儲 視頻文件 的目錄

      Movies

      , 只能存視頻文件 ;

      專門存儲音頻文件的目錄

      Music

      , 只能存儲音頻文件 ;

      專門存儲文檔文件的目錄

      Document

      , 只能存儲文檔相關文件 ;

      Download 目錄可以放置任何類型的文件 ;

      三、Android 10 中的存儲過渡方案

      Android 10 10 10 版本是過渡版本 , 在該版本中可以選擇啟用分區存儲 , 也可以選擇不用 , 在清單文件的 application 節點設置

      requestLegacyExternalStorage=“

      true

      屬性可以設置 不啟用 分區存儲 方案 , 但是

      在 Android 11 11 11 中 必須 啟用分區存儲

      , 否則應用不能兼容 Android 11 11 11 系統 ;

      Android 10 10 10(API 級別 29 29 29)及之前的系統版本 , 操作文件時 , 使用的 File 類 , 該類只支持傳統的存儲方式 ,

      不支持分區存儲 ;

      Android 11 11 11(API 級別 30 30 30)中不能使用 File 進行文件操作 , 只能使用 MediaStore 進行文件操作 ;

      參考文檔 - 暫時停用分區存儲 : https://developer.android.google.cn/training/data-storage/use-cases#opt-out-scoped-storage

      四、文件索引數據庫

      Android 11 11 11(API 級別 30 30 30) 之后的存儲機制 : Android 中所有文件存儲 , 都會將文件的索引存儲在數據庫中 , 在

      /data/data/com.android.providers.media

      目錄下的文件就是專門用于管理該數據庫的 ;

      /data/data/com.android.providers.media

      目錄下有 4 4 4 個目錄 , cache , code_cache ,

      databases

      , shared_prefs , 其中 databases 就是存儲的上述文件索引數據庫 , 有兩個數據庫文件 :

      external.db ,

      internal.db ;

      查看命令 :

      walleye:/ # cd /data/data/com.android.providers.media walleye:/data/data/com.android.providers.media # ls cache code_cache databases shared_prefs walleye:/data/data/com.android.providers.media # cd databases walleye:/data/data/com.android.providers.media/databases # ls external.db internal.db walleye:/data/data/com.android.providers.media/databases #

      1

      2

      【Android 文件管理】分區存儲 ( 分區存儲機制 和 文件索引數據 )

      3

      4

      5

      6

      7

      將 external.db 數據庫拷貝出來 , 使用 SQLite 查看工具查看該數據庫 , 該數據庫中有一張 files 數據表 , 就是存放文件索引的 , 只有開啟分區存儲時 , 才將所有的文件都保存在該數據庫表中 ;

      生成文件索引 :

      在老版本的文件系統中

      , 只有將文件放在 Pictures , Movies , Music , Document 等目錄下時 , 才生文件索引放在數據庫中 , 在 SD 卡其它位置創建文件 , 不會生成文件索引 ;

      在新版本的分區存儲中

      , 上述數據表中管理所有 SD 卡上的文件 , 所有的文件和目錄都會顯示在上述數據庫中 ;

      external.db 數據庫 files 數據表字段簡介 :

      _id : 每個文件都會被賦予一個 id , 不會重復 ;

      tittle : 文件名稱 , 一般是文件的完整名稱去掉文件后綴 ;

      _display_name : 文件的完整名稱 , 帶后綴 ;

      mime_type : 文件的 MIME 類型 ;

      五、相關文檔資料

      Android 文件處理參考文檔 :

      數據和文件存儲概覽 : https://developer.android.google.cn/training/data-storage

      訪問應用專屬文件 : https://developer.android.google.cn/training/data-storage/app-specific#kotlin

      保存到共享的存儲空間 : https://developer.android.google.cn/training/data-storage/shared

      管理存儲設備上的所有文件 : https://developer.android.google.cn/training/data-storage/manage-all-files

      分享文件 : https://developer.android.google.cn/training/secure-file-sharing

      應用安裝位置 : https://developer.android.google.cn/guide/topics/data/install-location

      Android 存儲用例和最佳做法 : https://developer.android.google.cn/training/data-storage/use-cases

      FileProvider : https://developer.android.google.cn/reference/androidx/core/content/FileProvider

      Android

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Ubuntu配置samba共享目錄
      下一篇:云性能測試服務CPTS怎么玩?
      相關文章
      亚洲视频在线观看视频| 亚洲V无码一区二区三区四区观看| 亚洲av无码成h人动漫无遮挡 | 亚洲欧洲国产经精品香蕉网| 亚洲AV成人一区二区三区AV| 亚洲男人的天堂www| 亚洲综合国产一区二区三区| 三上悠亚亚洲一区高清| 亚洲色欲久久久综合网 | 久久精品国产亚洲av麻豆蜜芽| 亚洲性69影院在线观看| 亚洲精品中文字幕乱码影院| 亚洲国产日韩在线人成下载| 亚洲人成影院午夜网站| 亚洲国产成a人v在线观看| 亚洲综合无码无在线观看| 亚洲熟妇AV一区二区三区浪潮| 国产亚洲中文日本不卡二区| 亚洲Av永久无码精品一区二区| 亚洲AV无码专区国产乱码不卡| 国产亚洲蜜芽精品久久| 亚洲国产一级在线观看| 中文字幕亚洲日本岛国片| 国产V亚洲V天堂无码| 亚洲国产一区国产亚洲| 亚洲黄色在线网站| 亚洲一级毛片免费看| 亚洲色欲色欲www在线播放 | 久久亚洲免费视频| 亚洲高清无在码在线无弹窗| 亚洲国产福利精品一区二区| 色天使亚洲综合在线观看| 亚洲第一街区偷拍街拍| 亚洲精品和日本精品| 亚洲精品中文字幕无码蜜桃| 久久亚洲AV成人出白浆无码国产| 亚洲国产电影在线观看| 亚洲av日韩专区在线观看| 亚洲综合国产精品第一页| 亚洲成A人片在线观看WWW| 亚洲视频小说图片|