Android內部儲存和外部儲存

2021-10-19 19:33:44 字數 1596 閱讀 5816

一、內部儲存空間中的應用私有目錄

對於沒有 root 過的手機,普通使用者是無法檢視 data/data 目錄內容的。不過開發人員可以使用模擬器除錯應用,並通過 ddms(dalvik debug monitor server)提供的 file explorer 工具檢視模擬器裝置的儲存空間

getfilesdir():

getcachedir():

deletefile()

filelist

()

environment也有響應的api

environment.

getdatadirectory()

;

二、外部儲存空間中的應用私有目錄

1、考慮內部儲存空間容量有限,普通使用者不能直接直觀地檢視目錄檔案等其他原因,android 在外部儲存空間中也提供有特殊目錄**用存放私有檔案,檔案路徑為:

/storage/emulated/

0

值得注意的是,與內部儲存空間的應用私有目錄不同的是:

第一,預設情況下,系統並不會自動建立外部儲存空間的應用私有目錄。只有在應用需要的時候,開發人員通過 sdk 提供的 api 建立該目錄資料夾和操作資料夾內容。

2、android sdk 中也提供有便捷的 api 供開發人員直接操作外部儲存空間下的應用私有目錄:

context.

getexternalfilesdir()

getexternalcachedir()

environment.

getexternalstoragedirectory()

;

三、外部儲存空間中的公共目錄

顯然,無論是內部儲存空間,還是外部儲存空間,上述兩個應用私有目錄由於其特有的生命週期(隨著應用解除安裝而自動清除)只適合儲存應用相關資料。

或者從訪問許可權上來說,應用無關資料應該是宿主應用希望與其他應用共享這些資料的,應該存放在外部儲存空間的公共目錄資料夾下。

外部儲存空間已經為使用者預設分類出一些公共目錄。開發人員可以通過 environment 類提供的方法直接獲取相應目錄的絕對路徑,傳遞不同的 type 引數型別即可:

environment.

getexternalstoragepublicdirectory

(string type)

;

envinonment 類提供諸多 type 引數的常量,比如:

directory_music:music

directory_movies:movies

directory_pictures:pictures

directory_downloads:download

等等,以第乙個常量為例,**類別的公共目錄絕對路徑為:/storage/emulated/0/music。如果你使用檔案管理器開啟裝置的外部儲存空間的話,均可以看到這些公共目錄資料夾。

面對如此諸多的預設類別,開發人員在儲存自己應用的公共檔案時,也要養成良好的習慣,將要儲存的資料分門別類地儲存在不同公共目錄下。當然,你也可以在公共目錄下再次建立屬於自己應用的目錄,便於管理。

Android 內部儲存與外部儲存

android.permission.write external storage 注意 目前所有應用都可以讀取外部儲存,而無需特別的許可權。但這在將來版本中會進行更改。如果應用需要讀取外部儲存 但不向其寫入資訊 那麼您將需要宣告 read external storage許可權。android.p...

Android 外部儲存,內部儲存路徑

import android.content.context import android.os.environment import android.util.log public class directoryutils 獲取當前程式路徑 應用在記憶體上的目錄 data data com.exa...

Android外部儲存 內部儲存路徑獲取大全

package com.mufeng.toolproject.utils import android.content.context import android.os.environment created by mufeng on 2017 3 11.public class director...