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


    一、计算应用程序所有的缓存信息,包括内部外部缓存信息,数据库,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);
    
        }
  • 相关阅读:
    图床_OpenStack-镜像服务
    图床_OpenStack-认证服务
    图床_OpenStack-基础环境
    #linux包之tcpdump之tcpdump命令
    利用OpenCms9提供的模块创建新站点
    Cocos2d-x3.0下实现循环列表
    Modbus读写模拟量寄存器具体解释
    C++ 实践总结
    spring Quartz基于配置文件和注解的实现
    EEPLAT学习
  • 原文地址:https://www.cnblogs.com/fuyanan/p/4103624.html
Copyright © 2020-2023  润新知