提供App数据清理工作的类 → AppCleanMgr

 
  package com.jingewenku.abrahamcaijin.commonutil;
  import android.annotation.SuppressLint;
  import android.content.Context;
  import android.os.Environment;
   
  import java.io.File;
  import java.text.DecimalFormat;
   
  /**
  * 主要功能: 提供App数据清理工作的类
  * @Prject: CommonUtilLibrary
  * @Package: com.jingewenku.abrahamcaijin.commonutil
  * @author: AbrahamCaiJin
  * @date: 2017年05月03日 16:37
  * @Copyright: 个人版权所有
  * @Company:
  * @version: 1.0.0
  */
  @SuppressLint("SdCardPath")
  public class AppCleanMgr {
   
  /**
  * 清除本应用内部缓存数据(/data/data/com.xxx.xxx/cache)
  * @param context 上下文
  * @return void
  */
  public static void cleanInternalCache(Context context) {
  AppFileMgr.deleteFilesByDirectory(context.getCacheDir());
  AppLogMessageMgr.i("AppCleanMgr->>cleanInternalCache", "清除本应用内部缓存(/data/data/" + context.getPackageName() + "/cache)");
  }
   
   
   
  /**
  * 清除本应用外部缓存数据(/mnt/sdcard/android/data/com.xxx.xxx/cache)
  * @param context 上下文
  * @return void
  */
  public static void cleanExternalCache(Context context) {
  if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
  AppFileMgr.deleteFilesByDirectory(context.getExternalCacheDir());
  AppLogMessageMgr.i("AppCleanMgr->>cleanExternalCache", "清除本应用外部缓存数据(/mnt/sdcard/android/data/" + context.getPackageName() + "/cache)");
  }
  }
   
   
  /**
  * 清除本应用所有数据库(/data/data/com.xxx.xxx/databases)
  * @param context 上下文
  * @return void
  */
  public static void cleanDatabases(Context context) {
  AppFileMgr.deleteFilesByDirectory(new File("/data/data/" + context.getPackageName() + "/databases"));
  AppLogMessageMgr.i("AppCleanMgr->>cleanDatabases", "清除本应用所有数据库");
  }
   
   
  /**
  * 清除本应用SharedPreference(/data/data/com.xxx.xxx/shared_prefs)
  * @param context 上下文
  * @return void
  */
  public static void cleanSharedPreference(Context context) {
  AppFileMgr.deleteFilesByDirectory(new File("/data/data/" + context.getPackageName() + "/shared_prefs"));
  AppLogMessageMgr.i("AppCleanMgr->>cleanSharedPreference", "清除本应用cleanSharedPreference数据信息");
  }
   
   
  /**
  * 根据名字清除本应用数据库
  * @param context 上下文
  * @param dbName
  * @return void
  */
  public static void cleanDatabaseByName(Context context, String dbName) {
  context.deleteDatabase(dbName);
  AppLogMessageMgr.i("AppCleanMgr->>cleanDatabaseByName", "根据名字清除本应用数据库");
  }
   
   
  /**
  * 清除本应用files文件(/data/data/com.xxx.xxx/files)
  * @param context 上下文
  * @return void
  */
  public static void cleanFiles(Context context) {
  AppFileMgr.deleteFilesByDirectory(context.getFilesDir());
  AppLogMessageMgr.i("AppCleanMgr->>cleanFiles", "清除data/data/" + context.getPackageName() + "/files下的内容信息");
  }
   
   
  /**
  * 清除本应用所有的数据
  * @param context 上下文
  * @return int
  */
  public static int cleanApplicationData(Context context) {
  //清除本应用内部缓存数据
  cleanInternalCache(context);
  //清除本应用外部缓存数据
  cleanExternalCache(context);
  //清除本应用SharedPreference
  cleanSharedPreference(context);
  //清除本应用files文件
  cleanFiles(context);
  AppLogMessageMgr.i("AppCleanMgr->>cleanApplicationData", "清除本应用所有的数据");
  return 1;
  }
   
   
  /**
  * 获取App应用缓存的大小
  * @param context 上下文
  * @return String
  */
  public static String getAppClearSize(Context context) {
  long clearSize = 0;
  String fileSizeStr = "";
  DecimalFormat df = new DecimalFormat("0.00");
  //获得应用内部缓存大小
  clearSize = AppFileMgr.getFileSize(context.getCacheDir());
  //获得应用SharedPreference缓存数据大小
  clearSize += AppFileMgr.getFileSize(new File("/data/data/" + context.getPackageName() + "/shared_prefs"));
  //获得应用data/data/com.xxx.xxx/files下的内容文件大小
  clearSize += AppFileMgr.getFileSize(context.getFilesDir());
  //获取应用外部缓存大小
  if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
  clearSize += AppFileMgr.getFileSize(context.getExternalCacheDir());
  }
  if(clearSize > 5000) {
  //转换缓存大小Byte为MB
  fileSizeStr = df.format((double) clearSize / 1048576) + "MB";
  }
  AppLogMessageMgr.i("AppCleanMgr->>getAppClearSize", "获取App应用缓存的大小");
  return fileSizeStr;
  }
   
   
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值