亞寵展、全球寵物產業風向標——亞洲寵物展覽會深度解析
987
2022-05-29
一、數據存儲匯總
類別
內容類型
訪問方法
需要權限
他應用可以訪問嗎?
卸載應用程序時刪除的文件?
應用程序專屬文件
僅供你的應用使用的文件
從內部存儲,getFilesDir()或?getCacheDir()
從外部存儲,?getExternalFilesDir()或?getExternalCacheDir()
內部存儲永遠不需要
當你的應用在運行 Android 4.4(API 級別 19)或更高版本的設備上使用時,外部存儲不需要
不
是的
Media
可共享的媒體文件(圖像、音頻文件、視頻)
MediaStore?API
READ_EXTERNAL_STORAGE 在 Android 11(API 級別 30)或更高版本上訪問其他應用的文件時
READ_EXTERNAL_STORAGE 或 WRITE_EXTERNAL_STORAGE 在 Android 10(API 級別 29)上訪問其他應用的文件時
Android 9(API 級別 28)或更低版本上的所有文件都需要權限
可以,雖然其他應用程序需要?權限READ_EXTERNAL_STORAGE
不
文件和其他文件
其他類型的可共享內容,包括下載的文件
存儲訪問框架
沒有任何權限
可以,通過系統文件選擇器
不
App preferences
鍵值對
Jetpack Preferences 庫
沒有任何權限
不
是的
數據庫
結構化數據
Room 持久性庫
沒有任何權限
不
是的
數據存儲需要多少空間:
內部存儲空間用于特定應用數據的空間有限(可通過多個進程,可以獲得更多的內存空間(圖庫等大型文件存放))。如果你需要保存大量數據,可以使用外部存儲、SharedPreference存儲或數據庫存儲。
數據訪問可靠性:
如果你的應用程序的基本功能需要某些數據,那么就將數據放在內部存儲目錄或數據庫中。禁止存儲在外部存儲中,某些設備允許用戶刪除與外部存儲對應的物理設備(如拔出存儲卡)。
需要存儲什么樣的數據:
需要一些簡單的存儲選擇使用應用程序專屬文件存儲。
對于可共享的媒體內容(圖片),那就使用共享存儲,以便其他應用程序可以訪問該內容。
對于結構化數據,可以使用Jetpack Preferences(用于鍵值數據)或數據庫(用于包含超過 2 列的數據)。
一、數據存儲匯總
數據存儲需要多少空間:
內部存儲空間用于特定應用數據的空間有限(可通過多個進程,可以獲得更多的內存空間(圖庫等大型文件存放))。如果你需要保存大量數據,可以使用外部存儲、SharedPreference存儲或數據庫存儲。
數據訪問可靠性:
如果你的應用程序的基本功能需要某些數據,那么就將數據放在內部存儲目錄或數據庫中。禁止存儲在外部存儲中,某些設備允許用戶刪除與外部存儲對應的物理設備(如拔出存儲卡)。
需要存儲什么樣的數據:
需要一些簡單的存儲選擇使用應用程序專屬文件存儲。
對于可共享的媒體內容(圖片),那就使用共享存儲,以便其他應用程序可以訪問該內容。
對于結構化數據,可以使用Jetpack Preferences(用于鍵值數據)或數據庫(用于包含超過 2 列的數據)。
數據私密性:
存儲敏感數據(不應從任何其他應用程序訪問的數據)時,可以使用內部存儲、Jetpack Preferences或數據庫。內部存儲具有對用戶隱藏數據的額外好處。
其實這幾種存儲方式都差不多,你可以由場景自行選擇,如:
共享文件(圖片保存)
共享文件(圖片保存)
SP or MMKV (簡單的用戶信息等)
SP or MMKV (簡單的用戶信息等)
SQLite or Room(首頁列表信息存儲或商品詳情等)
SQLite or Room(首頁列表信息存儲或商品詳情等)
二、相關鏈接
Android 數據全方案處理
Android 數據存儲(四)-Room
Android 數據存儲(三)-SQLite數據庫實例
Android 數據存儲(二)-Preferences or MMKV
Android 數據存儲(一)-文件存儲
Android SQLite 數據庫
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。