一、计算应用程序所有的缓存信息,包括内部外部缓存信息,数据库,SharedPreference,files目录的文件大小之和
/** * 计算应用程序所有的缓存信息,包括内部外部缓存信息,数据库,SharedPreference,files目录的文件大小之和 * * @param context * @return */ public String computeAllCacheSize(Context context) { long fileSize = 0; String cacheSize = "0KB"; File cacheDir = context.getCacheDir(); // /data/data/包名/cache System.out.println("cache缓存的路径:" + cacheDir); fileSize += getDirSize(cacheDir); File dataFileDir = context.getFilesDir(); fileSize += getDirSize(dataFileDir); File dataBaseFileDir = new File(("/data/data/" + context.getPackageName() + "/databases")); fileSize += getDirSize(dataBaseFileDir); File externalCacheDirFile = context.getExternalCacheDir(); fileSize += getDirSize(externalCacheDirFile); File shared_prefs = new File("/data/data/" + context.getPackageName() + "/shared_prefs"); fileSize += getDirSize(shared_prefs); if (fileSize > 0) { cacheSize = TextFormater.getDataSize(fileSize); } return cacheSize; }
二、
删除应用程序的所有缓存数据,包括内部外部缓存信息,数据库,SharedPreference,files目录
/** * 删除应用程序的所有缓存数据,包括内部外部缓存信息,数据库,SharedPreference,files目录 * * @param context */ public void clearAppAllCache(Context context) { // 清除 /data/data/ package_name /cache(应用缓存)缓存信息:存放缓存数据 File cacheFileDir = context.getCacheDir(); clearCacheFolder(cacheFileDir); // /data/data/package_name/files:存放应用程序自己控制的文件 File dataFileDir = context.getFilesDir(); clearCacheFolder(dataFileDir); // 清除某应用所有数据库(/data/data/包名/databases) File dataBaseFileDir = new File(("/data/data/" + context.getPackageName() + "/databases")); clearCacheFolder(dataBaseFileDir); // 清除某应用程序外部cache下((/mnt/sdcard/android/data/包名/cache)的内容 if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { File externalCacheDirFile = context.getExternalCacheDir(); clearCacheFolder(externalCacheDirFile); } // 清除某应用程序((/data/data/包名/shared_prefs))的内容 File shared_prefs = new File("/data/data/" + context.getPackageName() + "/shared_prefs"); clearCacheFolder(shared_prefs); }