外部存儲(chǔ)和內(nèi)部存儲(chǔ)介紹
android手機(jī)的存儲(chǔ)空間可以分為外部存儲(chǔ)和內(nèi)部存儲(chǔ)扼睬,內(nèi)部存儲(chǔ)里面的空間比較小几晤,里面的數(shù)據(jù)是由系統(tǒng)維護(hù)的绢陌。比如我們開發(fā)時(shí)候創(chuàng)建的數(shù)據(jù)庫或者SP文件都是存儲(chǔ)在內(nèi)部存儲(chǔ)里面卡者。如果要查看內(nèi)部存儲(chǔ)手機(jī)需要root權(quán)限才能看到步淹,一般時(shí)候是看不到的阻塑。
內(nèi)部存儲(chǔ)
比如我的nexus手機(jī)上的內(nèi)部存儲(chǔ)目錄是
/data/user/0/com.jin.mak.myapplication
這個(gè)路徑通過文件管理器沒root情況下是看不到的蓝撇。
這里是通過開發(fā)工具查看也需要root
data下面的data目錄就是存儲(chǔ)所有應(yīng)用的sp 文件 database文件 緩存文件的地方
1.data/data/包名/shared_prefs sp文件
2.data/data/包名/databases 數(shù)據(jù)庫文件
3.data/data/包名/files file文件
4.data/data/包名/cache 緩存文件
官方建議就是不要把一些特大文件存儲(chǔ)在內(nèi)部存儲(chǔ)里面,需要注意內(nèi)部存儲(chǔ)里面的文件會(huì)隨著應(yīng)用的刪除而刪除陈莽,我們可以把一些文件比較大的文件存放在外部存儲(chǔ)自己應(yīng)用的包名下渤昌,這樣卸載應(yīng)用的時(shí)候這些文件也會(huì)隨著一起卸載
外部存儲(chǔ)
Google官方建議我們App的數(shù)據(jù)應(yīng)該存儲(chǔ)在外部存儲(chǔ)的私有目錄中該App的包名下虽抄,這樣當(dāng)用戶卸載掉App之后,相關(guān)的數(shù)據(jù)會(huì)一并刪除独柑,如果你直接在/storage/sdcard目錄下創(chuàng)建了一個(gè)應(yīng)用的文件夾迈窟,那么當(dāng)你刪除應(yīng)用的時(shí)候,這個(gè)文件夾就不會(huì)被刪除
外部存儲(chǔ)才是我們平時(shí)操作最多的忌栅,外部存儲(chǔ)一般就是我們上面看到的storage文件夾车酣,當(dāng)然也有可能是mnt文件夾,這個(gè)不同廠家有可能不一樣狂秘。
一般來說骇径,在storage文件夾中有一個(gè)sdcard文件夾,這個(gè)文件夾中的文件又分為兩類者春,一類是公有目錄破衔,還有一類是私有目錄,其中的公有目錄有九大類钱烟,比如DCIM晰筛、DOWNLOAD等這種系統(tǒng)為我們創(chuàng)建的文件夾,私有目錄就是android這個(gè)文件夾拴袭,這個(gè)文件夾打開之后里邊有一個(gè)data文件夾读第,打開這個(gè)data文件夾,里邊有許多包名組成的文件夾
log : /storage/emulated/0/Android/data/com.jin.mak.myapplication/files/tesa
在外部存儲(chǔ)包名下面的files文件下創(chuàng)建了tesa文件夾
getApplicationContext().getExternalFilesDir("tesa")