public class DateclearManager {/** * 清除本应用内部缓存(/data/data/com.xxx.xxx/cache) * * @param context */public static void cleanInternalCache(Context context) {deleteFilesByDirectory(context.getCacheDir());}/** * 清除本应用所有数据库(/data/data/com.xxx.xxx/databases) * * @param context */public static void cleanDatabases(Context context) {deleteFilesByDirectory(new File("/data/data/"+ context.getPackageName() + "/databases"));}/*** * 清除本应用SharedPreference(/data/data/com.xxx.xxx/shared_prefs) * * @param* context*/public static void cleanSharedPreference(Context context) {deleteFilesByDirectory(new File("/data/data/"+ context.getPackageName() + "/shared_prefs"));}/** * 按名字清除本应用数据库 * * @param context * @param dbName */public static void cleanDatabaseByName(Context context, String dbName) {context.deleteDatabase(dbName);}/** * 清除/data/data/com.xxx.xxx/files下的内容 * * @param context */public static void cleanFiles(Context context) {deleteFilesByDirectory(context.getFilesDir());}/*** * 清除外部cache下的内容(/mnt/sdcard/android/data/com.xxx.xxx/cache) * * @param* context*/public static void cleanExternalCache(Context context) {if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {deleteFilesByDirectory(context.getExternalCacheDir());}}/** * 清除自定义路径下的文件,使用需小心,请不要误删。而且只支持目录下的文件删除 * * @param filePath */public static void cleanCustomCache(String filePath) {deleteFilesByDirectory(new File(filePath));}/** * 清除本应用所有的数据 * * @param context * @param filepath */public static void cleanApplicationData(Context context, String... filepath) {cleanInternalCache(context);cleanExternalCache(context);cleanDatabases(context);cleanSharedPreference(context);cleanFiles(context);for (String filePath : filepath) {cleanCustomCache(filePath);}}/***删除方法 这里只会删除某个文件夹下的文件,如果传入的directory是个文件,将不做处理*  @param directory*/private static void deleteFilesByDirectory(File directory) {if (directory != null && directory.exists() && directory.isDirectory()) {for (File item : directory.listFiles()) {item.delete();}}}/*** 获得所有缓存数据的大小* @param context* @return* @throws Exception*/public static String getTotalCacheSize(Context context) throws Exception {long cacheSize = getFolderSize(context.getCacheDir());if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {cacheSize += getFolderSize(context.getExternalCacheDir());}return getFormatSize(cacheSize);}//清空缓存public static void clearAllCache(Context context) {deleteDir(context.getCacheDir());if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {deleteDir(context.getExternalCacheDir());}}//删除文件private static boolean deleteDir(File dir) {if (dir != null && dir.isDirectory()) {String[] children = dir.list();for (int i = 0; i < children.length; i++) {boolean success = deleteDir(new File(dir, children[i]));if (!success) {return false;}}}return dir.delete();}// 获取文件大小//Context.getExternalFilesDir() --> SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据//Context.getExternalCacheDir() --> SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据public static long getFolderSize(File file) throws Exception {long size = 0;try {File[] fileList = file.listFiles();for (int i = 0; i < fileList.length; i++) {// 如果下面还有文件if (fileList[i].isDirectory()) {size = size + getFolderSize(fileList[i]);} else {size = size + fileList[i].length();}}} catch (Exception e) {e.printStackTrace();}return size;}/*** 格式化文件的单位  转化文件单位* @param size* @return*/public static String getFormatSize(double size) {double kiloByte = size / 1024;if (kiloByte < 1) {//            return size + "Byte";return "0K";}double megaByte = kiloByte / 1024;if (megaByte < 1) {BigDecimal result1 = new BigDecimal(Double.toString(kiloByte));return result1.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "KB";}double gigaByte = megaByte / 1024;if (gigaByte < 1) {BigDecimal result2 = new BigDecimal(Double.toString(megaByte));return result2.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "MB";}double teraBytes = gigaByte / 1024;if (teraBytes < 1) {BigDecimal result3 = new BigDecimal(Double.toString(gigaByte));return result3.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "GB";}BigDecimal result4 = new BigDecimal(teraBytes);return result4.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString()+ "TB";}}

Android工具类篇 清理APP应用缓存相关推荐

  1. Android工具类篇 图片拼接

    一.图片拼接(横向.纵向) /*** 横向拼接图片* <功能详细描述>** @param first* @param second* @return*/ public static fin ...

  2. Android 工具类

    前言 相信用过工具类的各位仁兄都觉得工具类好用,小弟不才,今天斗胆拿出自己感觉比较顺手的工具类. 1.Activity控制类 public class ActivityCollector{//acti ...

  3. Android 工具类 大全

    AppUtil工具类: 常用APP的工具类,包含版本号.版本名称.安装的应用程序ICON https://blog.csdn.net/houyingshang/article/details/8109 ...

  4. Android 申请权限前简单封装弹框阐述申请理由工具类,应付app合规检查

    近段时间浏览新闻经常会看到工信部通报某某app合规检查不合格,拒不整改,勒令全部下架这些信息,尤其是金融类app.个人信息的保护对用户确实是非常重要的,相信绝大多数行业工作者也感觉到了这些年国家对互联 ...

  5. android 图片缓存工具类,Android工具类系列-Glide图片缓存与圆角

    Glide的图片缓存和清除图片缓存 public class GlideCacheUtil { private static GlideCacheUtil inst; public static Gl ...

  6. (AS笔记)Android全透明沉浸式主题样式——工具类篇

    重要须知:工具类中形式参数带有:" int color " 设置颜色参数,在Activity调用时,请使用" ContextCompat.getColor(this, R ...

  7. Android工具类整合

    Android-JSONUtil工具类 常用的Json工具类,包含Json转换成实体.实体转json字符串.list集合转换成json.数组转换成json public class JSONUtil ...

  8. Android工具类的整理

    文章目录 android开发的工具类 Acvitity的栈式管理工具 GlideUtils和ImageLoader] ImageSelector Json数据解析工具 ListView自适应高度的方法 ...

  9. 常用的android工具类和库

    这篇博客主要记录我认为比较有用的android开源框架或者工具,我会持续添加,推荐给大家 1.这里面包含了很多的工具类,包括数据校验工具类,文件操作工具类,汉字转拼音工具类等. https://git ...

  10. android工具类怎么写,用kotlin写了一些android常用的一些工具类

    最近在学习kotlin语言,写了一些android常用的工具类 FileUtils.kt 文件操作类 创建多级文件目录 mkDir(dirPath: String) 创建文件 creatFile(fi ...

最新文章

  1. 弹性分组环(RPR)技术特点及其在城域网中的应用
  2. portainer的日常使用
  3. [《孔雀》观后]聪明的孩子提着易碎的灯笼
  4. 别再说Python没有枚举类型了,好好看看
  5. Jira 的 数据库备份恢复 简单过程
  6. 有赞美业微前端的落地总结
  7. bzoj 1606 [Usaco2008 Dec]Hay For Sale 购买干草(01背包)
  8. OSPF报文分类与格式
  9. [Flex] flex的安全沙箱,你保障了安全的同时也害苦了多少我这样的人那
  10. 纯净版PE系统安装全套流程
  11. 计算机术语宏是什么意思,宏(计算机术语)
  12. B Bitwise Exclusive-OR Sequence
  13. XSell和Xftp的简单使用方法
  14. Heuristics for Scalable Dynamic Test Generation
  15. css制作聊天气泡android,css实现聊天气泡效果
  16. tps5430应用电路详解_电源转换芯片TPS5430及其应用
  17. 两个地址之间的距离测量(使用高德API)
  18. 微软Surface系列产品详解
  19. CUDA编程(一):GPU计算与CUDA编程简介
  20. 股票量化分析工具QTYX使用攻略——形态选股结果回测(更新v2.5.6)

热门文章

  1. 京东、闲鱼、转转的二手战场
  2. WinRAR破解注册方法
  3. php前台新闻调用,PHP 调用新浪滚动新闻
  4. CocoaPods 使用小结
  5. 【洛谷P4826】Superbull S【最大生成树】
  6. 坚持整洁亦或拥抱混乱——新书《混乱: 改变我们生活的无序力量》解读
  7. 涉密计算机怎么更新补丁,当需要将病毒库、系统补丁程序等导入到涉密信息系统时采用什么方式...
  8. 跨平台应用开发进阶(三十四) :uni-app 应用 Universal Link 实现 iOS 微信分享
  9. Android 调用 系统选择器 选择 图片 或 文件(ACTION_PICK、ACTION_GET_CONTENT)
  10. PTA 习题3.6 一元多项式的乘法与加法运算