Android缓存数据清理

Android缓存的做用能够参考这篇文章:android缓存数据到本地放在哪儿最好?
应用程序在运行的过程当中若是须要向手机上保存数据,通常是把数据保存在SDcard中的。大部分应用是直接在SDCard的根目录下建立一个文件夹,而后把数据保存在该文件夹中。这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。若是你想让你的应用被卸载后,与该应用相关的数据也清除掉,该怎么办呢?
一、经过Context.getExternalFilesDir()方法能够获取到 SDCard/Android/data/你的应用的包名/files/ 目录,通常放一些长时间保存的数据
二、经过Context.getExternalCacheDir()方法能够获取到 SDCard/Android/data/你的应用包名/cache/目录,通常存放临时缓存数据
若是使用上面的方法,当你的应用在被用户卸载后,SDCard/Android/data/你的应用的包名/ 这个目录下的全部文件都会被删除,不会留下垃圾信息。
并且上面二个目录分别对应 设置->应用->应用详情里面的”清除数据“与”清除缓存“选项
三、Context.getFilesDir()能够获取到”/data/data/< package name>/files” 这个方法获取的目录不是在sdcard上,而是在应用安装的目录
四、Context.getCacheDir能够获取到”/data/data/< package name>/cache” 这个方法获取的目录不是在sdcard上,而是在应用安装的目录,这个文件里面的数据在设备内存不足的时候,会被系统删除数据。注意:你不能依赖系统帮你删除这些文件,当这个文件夹里面的数据超过1MB的时候,系统会删除这个文件夹里面的数据。html

当须要删掉缓存数据的时候,通常清理“SDCard/Android/data/你的应用包名/cache/目录”和“/data/data/< package name>/cache”目录下的数据
这里写图片描述android

清除上述目录下的文件能够经过windows批处理命令解决该问题web

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进行阅读shell