一、内存的分类
一般情况下,手机的内存分类有如下4类,分别是:
- 内部存储路径
- 内部缓存存储路径
- 外部存储路径
- 外部缓存存储路径
在部分手机上,某些手机制造商在定制rom的时候,会在内部划出一个内部的SDCard路径和内部存储路径,当插有SDCard的时候,就会多两个文件路径了。
二、文件路径的获取或说明
1. 通过Environment获取的
// 获得根目录/data (内部存储路径)
Environment.getDataDirectory().getPath();
// 获得缓存目录/cache
Environment.getDownloadCacheDirectory().getPath() ;
// 获得SD卡目录/mnt/sdcard(获取的是手机外置sd卡的路径)
Environment.getExternalStorageDirectory().getPath() ;
// 获得SD卡目录/mnt/sdcard/type(获取的是手机外置sd卡的指定文件的路径)
Environment.getExternalStoragePublicDirectory(type);
Envinonment 类提供诸多 type 参数的常量,比如:
DIRECTORY_MUSIC:Music
DIRECTORY_MOVIES:Movies
DIRECTORY_PICTURES:Pictures
DIRECTORY_DOWNLOADS:Download
//获得系统目录/system
Environment.getRootDirectory().getPath();
Environment.getDataDirectory() = /data
Environment.getDownloadCacheDirectory() = /cache
Environment.getExternalStorageDirectory() = /mnt/sdcard
Environment.getExternalStoragePublicDirectory(“test”) = /mnt/sdcard/test
Environment.getRootDirectory() = /system
2. 通过Context获取的
Context.getDatabasePath()
返回通过Context.openOrCreateDatabase 创建的数据库文件
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() :
来获得当前应用程序对应的 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
相关推荐:
https://blog.csdn.net/iromkoear/article/details/71279663