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


    一、计算应用程序所有的缓存信息,包括内部外部缓存信息,数据库,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);
    
        }
  • 相关阅读:
    基于jQuery解决ios10以上版本缩放问题
    移动端h5模拟长按事件
    一篇讲SpringBoot+kafka很好的文章
    Liquibase+SpringBoot的简单使用笔记!update+rollback
    集合异同,找出新增元素和删除元素
    spring-security-结合JWT的简单demo
    IDEA SpringBoot+JPA+MySql+Redis+RabbitMQ 秒杀系统
    提取swagger内容到csv表格,excel可打开
    spring mvc 黑马 笔记
    手机页面图片显示高低不一致
  • 原文地址:https://www.cnblogs.com/fuyanan/p/4103624.html
Copyright © 2020-2023  润新知