zoukankan      html  css  js  c++  java
  • (十九)计算应用程序所有的缓存信息和删除应用程序的所有缓存数据

    一、计算应用程序所有的缓存信息,包括内部外部缓存信息,数据库,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);
    
        }
  • 相关阅读:
    MongoDB 查询$关键字 $in $or $all
    MongoDB limit 选取 skip跳过 sort排序 方法
    POJ 1700
    POJ 1666
    POJ 1701
    POJ 1674
    POJ 1664
    POJ 1665
    POJ 1658
    POJ 1656
  • 原文地址:https://www.cnblogs.com/fuyanan/p/4103624.html
Copyright © 2011-2022 走看看