android获取各种系统路径的方法
获取路径的途径: Context获取 和 Environment获取
- 通过Context获取的
Tables | Are |
---|---|
Context.getPackageResourcePath() | 获取该程序的安装包路径 : /data/app/com.jhk.androidstudy-2/base.apk |
Context.getPackageName() | 用于获取APP的所在包目录 : com.jhk.androidstudy |
Context.getPackageCodePath() | 用来获得当前应用程序对应的 apk 文件的路径 : /data/app/com.jhk.androidstudy-2/base.apk |
Context.getDatabasePath() | 返回通过Context.openOrCreateDatabase 创建的数据库文件 |
Context.getFilesDir().getPath() | 用于获取APP的files目录 /data/data//files |
Context.getCacheDir().getPath() | 用于获取APP的cache目录 /data/data//cache目录 |
Context.getExternalCacheDir().getPath() | 用于获取APP的在SD卡中的cache目录/mnt/sdcard/Android/data//cache |
Context.getObbDir().getPath() | 用于获取APP SDK中的obb目录 /mnt/sdcard/Android/obb/ |
- 通过Environment获取的
Tables | Are |
---|---|
Environment.getDataDirectory().getPath() | 获得根目录/data (内部存储路径) |
Environment.getDownloadCacheDirectory().getPath() | 获得缓存目录/cache |
Environment.getExternalStorageDirectory().getPath() | 获得SD卡目录/mnt/sdcard(获取的是手机外置sd卡的路径) |
Environment.getRootDirectory().getPath() | 获得系统目录/system |
- 三种路径:
1. /data/data/package_name/ 该目录是只对应用可见的,而且如果手机没有root,用adb也是看不了这个目录,该目录用来存储和应用周期相关的文件,会随着应用的卸载一起删除掉
- /data/data/com.android.framework/shared_prefs/ 用来存储SharedPreference
- /data/data/com.android.framework/databases/ 用来存储数据库DB,相关函数还有getDatabasePath()
- /data/data/com.android.framework/app_webview 和 /data/data/package_name/xxxwebviewcachexxx 用来存储应用内置webview所产生的cache和cookies等,该目录由于android版本不同名字和位置也可能不同
- /data/data/com.android.framework/lib 用来存储该应用的.so静态库文件
- /data/data/com.android.framework/cache 该目录可以使用函数getCacheDir()获取
- data/data/com.android.framework/files 该目录可以使用函数getFilesDir()获取,openFileInput()和openFileOutput()函数也是在该目录下操作文件,fileList()函数是用来列出该files目录下的所有文件,deleteFile(String name)用来删除该files目录下的文件
- /data/data/com.android.framework/ 这个目录下面当然也能够创建子集的目录,使用的方法就是getDir(String name, int mode),参数中的name就是需要在该目录下创建的子目录名字,你如果能够打开应用的该目录,一般会在该目录下看到很多子目录
- getPackageCodePath() = /data/app/com.android.framework-1.apk
- getPackageResourcePath() = /data/app/com.android.framework-1.apk
2.