content: package com.rsen.github.androidutilcode;
  
  import android.app.ActivityManager;
  import android.content.Context;
  
  import java.io.File;
  import java.util.Arrays;
  import java.util.HashSet;
  import java.util.List;
  import java.util.Set;
  
  /**
   * <pre>
   *     author: Blankj
   *     blog  : http://blankj.com
   *     time  : 2016/9/27
   *     desc  : 清除相关工具类
   * </pre>
   */
  public class CleanUtils {
  
      private CleanUtils() {
          throw new UnsupportedOperationException("u can't instantiate me...");
      }
  
      /**
       * 清除内部缓存
       * <p>/data/data/com.xxx.xxx/cache</p>
       *
       * @param context 上下文
       * @return {@code true}: 清除成功<br>{@code false}: 清除失败
       */
      public static boolean cleanInternalCache(Context context) {
          return FileUtils.deleteFilesInDir(context.getCacheDir());
      }
  
      /**
       * 清除内部文件
       * <p>/data/data/com.xxx.xxx/files</p>
       *
       * @param context 上下文
       * @return {@code true}: 清除成功<br>{@code false}: 清除失败
       */
      public static boolean cleanInternalFiles(Context context) {
          return FileUtils.deleteFilesInDir(context.getFilesDir());
      }
  
      /**
       * 清除内部数据库
       * <p>/data/data/com.xxx.xxx/databases</p>
       *
       * @param context 上下文
       * @return {@code true}: 清除成功<br>{@code false}: 清除失败
       */
      public static boolean cleanInternalDbs(Context context) {
          return FileUtils.deleteFilesInDir(context.getFilesDir().getParent() + File.separator + "databases");
      }
  
      /**
       * 根据名称清除数据库
       * <p>/data/data/com.xxx.xxx/databases/dbName</p>
       *
       * @param context 上下文
       * @param dbName  数据库名称
       * @return {@code true}: 清除成功<br>{@code false}: 清除失败
       */
      public static boolean cleanInternalDbByName(Context context, String dbName) {
          return context.deleteDatabase(dbName);
      }
  
      /**
       * 清除内部SP
       * <p>/data/data/com.xxx.xxx/shared_prefs</p>
       *
       * @param context 上下文
       * @return {@code true}: 清除成功<br>{@code false}: 清除失败
       */
      public static boolean cleanInternalSP(Context context) {
          return FileUtils.deleteFilesInDir(context.getFilesDir().getParent() + File.separator + "shared_prefs");
      }
  
      /**
       * 清除外部缓存
       * <p>/storage/emulated/0/android/data/com.xxx.xxx/cache</p>
       *
       * @param context 上下文
       * @return {@code true}: 清除成功<br>{@code false}: 清除失败
       */
      public static boolean cleanExternalCache(Context context) {
          return SDCardUtils.isSDCardEnable() && FileUtils.deleteFilesInDir(context.getExternalCacheDir());
      }
  
      /**
       * 清除自定义目录下的文件
       *
       * @param dirPath 目录路径
       * @return {@code true}: 清除成功<br>{@code false}: 清除失败
       */
      public static boolean cleanCustomCache(String dirPath) {
          return FileUtils.deleteFilesInDir(dirPath);
      }
  
      /**
       * 清除自定义目录下的文件
       *
       * @param dir 目录
       * @return {@code true}: 清除成功<br>{@code false}: 清除失败
       */
      public static boolean cleanCustomCache(File dir) {
          return FileUtils.deleteFilesInDir(dir);
      }
  }
  