一、內(nèi)存的分類(lèi)
一般情況下,手機(jī)的內(nèi)存分類(lèi)有如下4類(lèi),分別是:
- 內(nèi)部存儲(chǔ)路徑
- 內(nèi)部緩存存儲(chǔ)路徑
- 外部存儲(chǔ)路徑
- 外部緩存存儲(chǔ)路徑
在部分手機(jī)上,某些手機(jī)制造商在定制rom的時(shí)候,會(huì)在內(nèi)部劃出一個(gè)內(nèi)部的SDCard路徑和內(nèi)部存儲(chǔ)路徑,當(dāng)插有SDCard的時(shí)候,就會(huì)多兩個(gè)文件路徑了。
二、文件路徑的獲取或說(shuō)明
1. 通過(guò)Environment獲取的
// 獲得根目錄/data (內(nèi)部存儲(chǔ)路徑)
Environment.getDataDirectory().getPath();
// 獲得緩存目錄/cache
Environment.getDownloadCacheDirectory().getPath() ;
// 獲得SD卡目錄/mnt/sdcard(獲取的是手機(jī)外置sd卡的路徑)
Environment.getExternalStorageDirectory().getPath() ;
// 獲得SD卡目錄/mnt/sdcard/type(獲取的是手機(jī)外置sd卡的指定文件的路徑)
Environment.getExternalStoragePublicDirectory(type);
Envinonment 類(lèi)提供諸多 type 參數(shù)的常量,比如:
DIRECTORY_MUSIC:Music
DIRECTORY_MOVIES:Movies
DIRECTORY_PICTURES:Pictures
DIRECTORY_DOWNLOADS:Download
//獲得系統(tǒng)目錄/system
Environment.getRootDirectory().getPath();
Environment.getDataDirectory() = /data
Environment.getDownloadCacheDirectory() = /cache
Environment.getExternalStorageDirectory() = /mnt/sdcard
Environment.getExternalStoragePublicDirectory(“test”) = /mnt/sdcard/test
Environment.getRootDirectory() = /system
2. 通過(guò)Context獲取的
Context.getDatabasePath()
返回通過(guò)Context.openOrCreateDatabase 創(chuàng)建的數(shù)據(jù)庫(kù)文件
Context.getCacheDir().getPath() :
用于獲取APP的cache目錄 /data/data/<application package>/cache目錄
Context.getExternalCacheDir().getPath() :
用于獲取APP的在SD卡中的cache目錄/mnt/sdcard/Android/data/<application package>/cache
Context.getFilesDir().getPath() :
用于獲取APP的files目錄 /data/data/<application package>/files
Context.getObbDir().getPath():
用于獲取APP SDK中的obb目錄 /mnt/sdcard/Android/obb/<application package>
Context.getPackageName() :
用于獲取APP的所在包目錄
Context.getPackageCodePath() :
來(lái)獲得當(dāng)前應(yīng)用程序?qū)?yīng)的 apk 文件的路徑
Context.getPackageResourcePath() :
獲取該程序的安裝包路徑
getPackageCodePath() = /data/app/com.my.app-1.apk
getPackageResourcePath() = /data/app/com.my.app-1.apk
getCacheDir() = /data/data/com.my.app/cache
getDatabasePath(“test”) = /data/data/com.my.app/databases/test
getDir(“test”, Context.MODE_PRIVATE) = /data/data/com.my.app/app_test
getExternalCacheDir() = /mnt/sdcard/Android/data/com.my.app/cache
getExternalFilesDir(“test”) = /mnt/sdcard/Android/data/com.my.app/files/test
getExternalFilesDir(null) = /mnt/sdcard/Android/data/com.my.app/files
getFilesDir() = /data/data/com.my.app/files
相關(guān)推薦:
https://blog.csdn.net/iromkoear/article/details/71279663