(十九)计算应用程序所有的缓存信息和删除应用程序的所有缓存数据

一、计算应用程序所有的缓存信息,包括内部外部缓存信息,数据库,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);

    }
原文地址:https://www.cnblogs.com/fuyanan/p/4103624.html