Android的內(nèi)部存儲與外部存儲

[TOC]

一篇更實用的文章

1.內(nèi)部存儲

data文件夾就是我們常說的內(nèi)部存儲,當我們打開data文件夾之后(沒有root的手機不能打開該文件夾),里邊有兩個文件夾值得我們關(guān)注,如下:

根目錄文件夾
data文件夾

一個文件夾是app文件夾,還有一個文件夾就是data文件夾,app文件夾里存放著我們所有安裝的app的apk文件,其實,當我們調(diào)試一個app的時候,可以看到控制臺輸出的內(nèi)容,有一項是uploading .....就是上傳我們的apk到這個文件夾,上傳成功之后才開始安裝。另一個重要的文件夾就是data文件夾了,這個文件夾里邊都是一些包名,打開這些包名之后我們會看到這樣的一些文件:

  1. data/data/包名/shared_prefs
  2. data/data/包名/databases
  3. data/data/包名/files
  4. data/data/包名/cache

如果打開過data文件,應(yīng)該都知道這些文件夾是干什么用的,我們在使用sharedPreferenced的時候,將數(shù)據(jù)持久化存儲于本地,其實就是存在這個文件中的xml文件里,我們App里邊的數(shù)據(jù)庫文件就存儲于databases文件夾中,還有我們的普通數(shù)據(jù)存儲在files中,緩存文件存儲在cache文件夾中,存儲在這里的文件我們都稱之為內(nèi)部存儲。

2.外部存儲

外部存儲才是我們平時操作最多的,外部存儲一般就是我們上面看到的storage文件夾,當然也有可能是mnt文件夾,這個不同廠家有可能不一樣。
一般來說,在storage文件夾中有一個sdcard文件夾,這個文件夾中的文件又分為兩類,一類是公有目錄,還有一類是私有目錄,其中的公有目錄有九大類,比如DCIM、DOWNLOAD等這種系統(tǒng)為我們創(chuàng)建的文件夾,私有目錄就是android這個文件夾,這個文件夾打開之后里邊有一個data文件夾,打開這個data文件夾,里邊有許多包名組成的文件夾。

3. 操作存儲空間

首先,經(jīng)過上面的分析,大家已經(jīng)明白了,什么是內(nèi)部存儲,什么是外部存儲,以及這兩種存儲方式分別存儲在什么位置,一般來說,我們不會自己去操作內(nèi)部存儲空間,沒有root權(quán)限的話,我們也沒法操作內(nèi)部存儲空間,事實上內(nèi)部存儲主要是由系統(tǒng)來維護的。不過在代碼中我們是可以訪問到這個文件夾的。由于內(nèi)部存儲空間有限,在開發(fā)中我們一般都是操作外部存儲空間,Google官方建議我們App的數(shù)據(jù)應(yīng)該存儲在外部存儲的私有目錄中該App的包名下,這樣當用戶卸載掉App之后,相關(guān)的數(shù)據(jù)會一并刪除,如果你直接在/storage/sdcard目錄下創(chuàng)建了一個應(yīng)用的文件夾,那么當你刪除應(yīng)用的時候,這個文件夾就不會被刪除。
經(jīng)過以上的介紹,我們可以總結(jié)出下面一個表格:

儲存空間表格

一目了然,什么是內(nèi)部存儲,什么是外部存儲。
如果按照路徑的特征,我們又可以將文件存儲的路徑分為兩大類,一類是路徑中含有包名的,一類是路徑中不含有包名的,含有包名的路徑,因為和某個App有關(guān),所以對這些文件夾的訪問都是調(diào)用Context里邊的方法,而不含有包名的路徑,和某一個App無關(guān),我們可以通過Environment中的方法來訪問。如下圖:

獲取目錄方法
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容