前言
查了很多資料判帮,最終歸結(jié)為如下內(nèi)容
1.資料參考
Android文件各種存儲(chǔ)路徑的比較
徹底了解android中的內(nèi)部存儲(chǔ)與外部存儲(chǔ)
參考
徹底搞懂Android文件存儲(chǔ)---內(nèi)部存儲(chǔ)杏死,外部存儲(chǔ)以及各種存儲(chǔ)路徑解惑
Android外部存儲(chǔ)/內(nèi)部存儲(chǔ)路徑獲取大全
2.概念的認(rèn)識(shí)
內(nèi)部存儲(chǔ):
內(nèi)部存儲(chǔ)不同于內(nèi)存蜀变,與應(yīng)用有關(guān)聯(lián)的文件數(shù)據(jù)存儲(chǔ)在其中伍茄,而且它也是系統(tǒng)本身和系統(tǒng)應(yīng)用程序主要的數(shù)據(jù)存儲(chǔ)所在地奈虾。SharedPreferences和SQLite數(shù)據(jù)庫(kù)都是存儲(chǔ)在內(nèi)部存儲(chǔ)空間上的仅孩。內(nèi)部存儲(chǔ)空間有限府瞄,盡量不存在此處碧磅。
外部存儲(chǔ):
外部存儲(chǔ)分為手機(jī)
在4.4(API19)以前的手機(jī)上,手機(jī)自身帶的存儲(chǔ)卡就是內(nèi)部存儲(chǔ)遵馆,而擴(kuò)展的SD卡就是外部存儲(chǔ)鲸郊;
在4.4系統(tǒng)及以上的手機(jī)將機(jī)身存儲(chǔ)存儲(chǔ)(手機(jī)自身帶的存儲(chǔ)叫做機(jī)身存儲(chǔ))在概念上分成了”內(nèi)部存儲(chǔ)internal” 和”外部存儲(chǔ)external” 兩部分,假如插入了sd卡货邓,sd卡也屬于外部存儲(chǔ)秆撮。
eg:
如果你的手機(jī)插了SD卡的話,那么它打印的路徑就有兩條了换况,例如我的華為榮耀7插了SD卡职辨,它的結(jié)果如下:
/storage/emulated/0/Android/data/packname/files/mounted
/storage/B3E4-1711/Android/data/packname/files/mounted
其中/storage/emulated/0目錄就是機(jī)身存儲(chǔ)的外部存儲(chǔ)路徑
而/storage/B3E4-1711/就是SD卡的路徑
他們統(tǒng)稱為外部存儲(chǔ)
3.Api路徑方法總結(jié)
內(nèi)部存儲(chǔ):
- /data/data/包名/
context.getFilesDir(); // /data/data/包名/files
context.getCacheDir(); // /data/data/包名/cache
外部存儲(chǔ):
- /sdcard/Android/data/包名/
context.getExternalFilesDir(); /sdcard/Android/data/包名/files
context.getExternalCacheDir(); /sdcard/Android/data/包名/cache
- /sdcard/xxx
/storage/emulated/0
Environment.getExternalStorageDirectory();
/storage/emulated/0/DCIM, 另外還有MOVIE/MUSIC等很多種標(biāo)準(zhǔn)路徑
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
getExternalStorageDirectory()在不同android機(jī)子上的路徑信息
系統(tǒng)版本 | 結(jié)果 |
---|---|
4.0 | /mnt/sdcard |
4.1 | /storage/sdcard0 |
4.2 | /storage/sdcard0 |
4.4 | /storage/emulated/0 |
6.0 | /storage/emulated/0 |
1盗蟆、其中sdcard/、mnt/sdcard拨匆、storage/sdcard0姆涩、storage/emulated/0、storage/emulated/legacy都是同一個(gè)路徑的不同”指針“惭每,指向的是同一個(gè)地方,只是不同Android版本的叫法不一樣亏栈。