Android缓存数据清理
2017-05-12 13:13
204 查看
Android缓存的作用可以参考这篇文章:android缓存数据到本地放在哪儿最好?
应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的。大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中。这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,该怎么办呢?
1、通过Context.getExternalFilesDir()方法可以获取到 SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据
2、通过Context.getExternalCacheDir()方法可以获取到 SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据
如果使用上面的方法,当你的应用在被用户卸载后,SDCard/Android/data/你的应用的包名/ 这个目录下的所有文件都会被删除,不会留下垃圾信息。
而且上面二个目录分别对应 设置->应用->应用详情里面的”清除数据“与”清除缓存“选项
3、Context.getFilesDir()可以获取到”/data/data/< package name>/files” 这个方法获取的目录不是在sdcard上,而是在应用安装的目录
4、Context.getCacheDir可以获取到”/data/data/< package name>/cache” 这个方法获取的目录不是在sdcard上,而是在应用安装的目录,这个文件里面的数据在设备内存不足的时候,会被系统删除数据。注意:你不能依赖系统帮你删除这些文件,当这个文件夹里面的数据超过1MB的时候,系统会删除这个文件夹里面的数据。
当需要删掉缓存数据的时候,一般清理“SDCard/Android/data/你的应用包名/cache/目录”和“/data/data/< package name>/cache”目录下的数据
![](https://img-blog.csdn.net/20170512130425691?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGZkYW5kaW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
清除上述目录下的文件可以通过windows批处理命令解决该问题
而对于通过adb shell启动应用进程,可以通过链接http://www.cnblogs.com/riasky/p/3473535.html和链接http://blog.sina.com.cn/s/blog_505bf9af0101d9co.html进行阅读
应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的。大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中。这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,该怎么办呢?
1、通过Context.getExternalFilesDir()方法可以获取到 SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据
2、通过Context.getExternalCacheDir()方法可以获取到 SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据
如果使用上面的方法,当你的应用在被用户卸载后,SDCard/Android/data/你的应用的包名/ 这个目录下的所有文件都会被删除,不会留下垃圾信息。
而且上面二个目录分别对应 设置->应用->应用详情里面的”清除数据“与”清除缓存“选项
3、Context.getFilesDir()可以获取到”/data/data/< package name>/files” 这个方法获取的目录不是在sdcard上,而是在应用安装的目录
4、Context.getCacheDir可以获取到”/data/data/< package name>/cache” 这个方法获取的目录不是在sdcard上,而是在应用安装的目录,这个文件里面的数据在设备内存不足的时候,会被系统删除数据。注意:你不能依赖系统帮你删除这些文件,当这个文件夹里面的数据超过1MB的时候,系统会删除这个文件夹里面的数据。
当需要删掉缓存数据的时候,一般清理“SDCard/Android/data/你的应用包名/cache/目录”和“/data/data/< package name>/cache”目录下的数据
清除上述目录下的文件可以通过windows批处理命令解决该问题
adb shell "su -c 'rm -rf /data/data/com.tencent.mobileqq.qspeaker/cache/*'" adb shell "su -c 'rm -rf /mnt/sdcard/Android/data/com.tencent.mobileqq.qspeaker/cache/*'" adb shell "su -c 'am force-stop com.tencent.mobileqq.qspeaker'" adb shell am start -n com.tencent.mobileqq.qspeaker/com.example.demo.LoginActivity
而对于通过adb shell启动应用进程,可以通过链接http://www.cnblogs.com/riasky/p/3473535.html和链接http://blog.sina.com.cn/s/blog_505bf9af0101d9co.html进行阅读
相关文章推荐
- Android开发——获取应用数据/缓存大小并清理缓存
- Android Glide数据更新及内存缓存、硬盘缓存清理
- Android开发——获取应用数据/缓存大小并清理缓存
- Android Glide数据更新及内存缓存、硬盘缓存清理
- Android Glide数据更新及内存缓存、硬盘缓存清理
- android-系统设置中的,清理数据和清理缓存
- android开发教程之清除android数据缓存示例(清除本地数据缓存)
- android 清理缓存
- Android中TCP缓存和数据传输(上)/(下)
- Android清除本地数据缓存代码案例
- 【Android】Android清除本地数据缓存代码
- Android清除本地数据缓存代码案例 sqlite sharedpref 等等
- android缓存数据到本地放在哪儿最好?
- 无需root,清除清理安卓,android的cache,缓存
- Android数据缓存
- 产品设计:Android应用-开发技术【数据缓存】
- 如何清理Android应用缓存
- Android清理软件缓存
- 【Android Advanced Training - 05】传输数据时避免电量的浪费[Lesson 3 - 使用缓存来避免重复的下载]
- Android清除本地数据缓存代码