1. 图示
Android存储2. 使用方法示例
private void writeFile() throws IOException {
// 内部存储 缓存目录
File internalCacheFile = new File(getCacheDir(), "cache.txt");
internalCacheFile.createNewFile();
// /data/user/0/com.example.myapp/cache/cache.txt
Log.d(TAG, "internalCacheFile path = " + internalCacheFile.getAbsolutePath());
// 内部存储 file目录
File internalFileFile = new File(getFilesDir(), "file.txt");
internalFileFile.createNewFile();
// 外部存储私有目录 缓存目录
File externalCacheFile = new File(getApplicationContext().getExternalCacheDir(), "cache.txt");
externalCacheFile.createNewFile();
// /storage/emulated/0/Android/data/com.example.myapp/cache/cache.txt
Log.d(TAG, "externalCacheFile path = " + externalCacheFile.getAbsolutePath());
// 外部存储私有目录 picture file目录
File externalFileFile = new File(getApplicationContext().getExternalFilesDir(Environment.DIRECTORY_PICTURES), "cache.txt");
externalFileFile.createNewFile();
// /storage/emulated/0/Android/data/com.example.myapp/files/Pictures/cache.txt
Log.d(TAG, "externalFileFile path = " + externalFileFile.getAbsolutePath());
}
2.1 执行代码后的内部存储
image路径 /data/user/0/com.example.myapp(小米手机)
2.2 执行代码后的外部存储私有目录
image路径 /storage/emulated/0/Android/data/com.example.myapp
3. 清除缓存 & 清除数据 & 卸载app
1. 清除缓存
清除缓存会删除 内部存储 & 外部存储私有目录 cache 下面的内容
清除缓存后的内部存储内部存储
清除缓存后的外部存储私有目录外部存储
注意:为了在清除缓存的时候能够正常清除与应用相关的缓存,请将缓存文件存放在getCacheDir()或者 getExternalCacheDir()路径下。
2. 清除数据
清除全部数据 会删除内部存储 和外部存储私有目录的全部数据
上一节中的目录都被清空了。
清除数据主要是清除用户配置。比如SharedPreferences、数据库等等,这些数据都是在程序运行过程中保存的用户配置信息,清除数据后,下次进入程序就和第一次进入程序时一样。
3. 总结
为了让程序被卸载后,不在文件系统中留下毫无关联的无用文件。建议将应用相关的配置和缓存文件,存放在程序被卸载时,会自动删掉的文件夹下面,具体路径有:
- /data/data/package/
- getFilesDir()
- getCacheDir()
- getExternalCacheDir()(是否能够在程序被卸载时被删除与API的等级有关)
- getExternalFilesDir()(是否能够在程序被卸载时被删除与API的等级有关)
音乐文件、视频文件、图片、电子书这种适合多个应用阅读和浏览的文件除外。这些可以放到上面说的公有目录去。
4. 引用
Android存储扩展学习-----应用的清除数据和清除缓存https://blog.csdn.net/oudetu/article/details/78664514)
网友评论