Android的存儲系統主要分為內部存儲和外部存儲,它們在數據存儲、訪問權限、數據持久性等方面存在顯著差異。以下是詳細介紹:
內部存儲與外部存儲的定義
- 內部存儲:設備的內置存儲,專門用于保存應用的私有數據。每個應用都有自己的內部存儲空間,其他應用不能訪問。
- 外部存儲:設備的共享存儲區域,可以是內置存儲(如主存儲)或可移動存儲(如SD卡)。外部存儲可以被多個應用訪問,但需要申請相應的權限。
訪問權限
- 內部存儲:每個應用的內部存儲空間僅允許自己訪問,除非有更高的權限,如root。
- 外部存儲:需要申請讀寫權限。所有應用都可以讀外部存儲而不需要任何權限,但寫操作需要申請WRITE_EXTERNAL_STORAGE權限。
數據持久性
- 內部存儲:應用卸載后,該目錄也會被刪除。
- 外部存儲:應用卸載時,只有存在
/storage/emulated/0/Android/data/package_name/
路徑下的文件會消失。
使用場景
- 內部存儲:適用于存儲應用的配置文件、用戶數據等私有文件。
- 外部存儲:用于存放用戶可見的文件,如圖片、音頻、視頻等,或應用希望與其他App共享或傳到電腦上的文件。
存儲位置
- 內部存儲:路徑為
/data/data/<package_name>/
。
- 外部存儲:路徑為
/storage/emulated/0/
或Environment.getExternalStorageDirectory()
。
權限申請
- 內部存儲:不需要申請額外權限。
- 外部存儲:需要申請
READ_EXTERNAL_STORAGE
和WRITE_EXTERNAL_STORAGE
權限。
可信度
- 內部存儲:永遠可用(Permanent)。
- 外部存儲:可能不可用,最典型的當設備作為USB存儲被mount時不可用。
通過上述對比,可以看出內部存儲和外部存儲各有其特點和適用場景,開發者在設計應用時,應根據數據的重要性和訪問需求,選擇合適的存儲方式。