版权声明:本文为作者原创,转载必须注明出处。
转载请注明出处:http://www.jianshu.com/p/7b948b47e986
Android设置中中清除数据:
清理掉的数据路径:
1、内部存储:data\data\下的包名文件夹会被整个清除掉
2、外部存储:mnt\sdcard\Android\data\包名文件夹会被整个清除掉
不会被清理掉的数据路径:
外部存储:mnt\sdcard\Android\除了对于包名之外的所有文件及文件夹都不会被清掉
对于内部存储:获取data\data\包名\files 目录下的文件流
context.openFileOutput 写
context.openFileInput 读
判断有无sdcard:
android.os.Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED);
android获取目录的系统方法:
一、内部存储(通过context获取):
Context.getDatabasePath() 返回通过Context.openOrCreateDatabase 创建的数据库文件
Context.getCacheDir().getPath() : 用于获取APP的cache目录 /data/data//cache目录
Context.getExternalCacheDir().getPath() : 用于获取APP的在SD卡中的cache目录/mnt/sdcard/Android/data//cache 不对
应该是/storage/emulated/0/Android/data/app_package_name/cache
Context.getFilesDir().getPath() : 用于获取APP的files目录 /data/data//files
Context.getObbDir().getPath(): 用于获取APPSDK中的obb目录 /mnt/sdcard/Android/obb/
Context.getPackageName() : 用于获取APP的所在包目录
Context.getPackageCodePath() : 来获得当前应用程序对应的 apk 文件的路径
Context.getPackageResourcePath() : 获取该程序的安装包路径
二、外部存储(Environment获取):
Environment.getDataDirectory().getPath() : 获得根目录/data 内部存储路径
Environment.getDownloadCacheDirectory().getPath() : 获得缓存目录/cache
Environment.getExternalStorageDirectory().getPath(): 获得SD卡目录/mnt/sdcard(获取的是手机外置sd卡的路径)
Environment.getRootDirectory().getPath() : 获得系统目录/system
SD卡缓存目录
当应用需要将图片或者文件缓存到SD卡中时要去申请创建目录,有下面几种途径
我们可以通过API调用应用专属目录:
// /storage/emulated/0/Android/data/app_package_name/files/Pictures
Content.getExternalFilesDir(Environment.DIRECTORY_PICTURES);
// /storage/emulated/0/Android/data/app_package_name/cache
Content.getExternalCacheDir();
上面两个目录是专属于当前app的,当应用被删除时,上面目录下的文件也会清空
内存缓存目录
相对于应用的专属SD卡缓存有两个内存缓存地址:
Content. getCacheDir(); // /data/data/app_package_name/cache
Content. getFilesDir(); // /data/data/app_package_name/files