Android缓存数据清理

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”目录下的数据
这里写图片描述

清除上述目录下的文件可以通过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进行阅读

你可能感兴趣的:(app测试)