/* 
     * 文 件 名:  DataCleanManager.java 
     * 描    述:  主要功能有清除内/外缓存,清除数据库,清除sharedPreference,清除files和清除自定义目录 
     */  
    package com.archermind.DataClean;  
      
    import java.io.File;  
      
    import android.content.Context;  
    import android.os.Environment;  
      
    /** 
     * 本应用数据清除管理器 
     */  
    public class DataCleanManager {  
        /** 
         * 清除本应用内部缓存(/data/data/com.xxx.xxx/cache) 
         *  
         * @param context 
         */  
        public static void cleanInternalCache(Context context) {  
            deleteFilesByDirectory(context.getCacheDir());  
        }  
      
        /** 
         * 清除本应用所有数据库(/data/data/com.xxx.xxx/databases) 
         *  
         * @param context 
         */  
        public static void cleanDatabases(Context context) {  
            deleteFilesByDirectory(new File("/data/data/"  
                    + context.getPackageName() + "/databases"));  
        }  
      
        /** 
         * 清除本应用SharedPreference(/data/data/com.xxx.xxx/shared_prefs) 
         *  
         * @param context 
         */  
        public static void cleanSharedPreference(Context context) {  
            deleteFilesByDirectory(new File("/data/data/"  
                    + context.getPackageName() + "/shared_prefs"));  
        }  
      
        /** 
         * 按名字清除本应用数据库 
         *  
         * @param context 
         * @param dbName 
         */  
        public static void cleanDatabaseByName(Context context, String dbName) {  
            context.deleteDatabase(dbName);  
        }  
      
        /** 
         * 清除/data/data/com.xxx.xxx/files下的内容 
         *  
         * @param context 
         */  
        public static void cleanFiles(Context context) {  
            deleteFilesByDirectory(context.getFilesDir());  
        }  
      
        /** 
         * 清除外部cache下的内容(/mnt/sdcard/android/data/com.xxx.xxx/cache) 
         *  
         * @param context 
         */  
        public static void cleanExternalCache(Context context) {  
            if (Environment.getExternalStorageState().equals(  
                    Environment.MEDIA_MOUNTED)) {  
                deleteFilesByDirectory(context.getExternalCacheDir());  
            }  
        }  
      
        /** 
         * 清除自定义路径下的文件,使用需小心,请不要误删。而且只支持目录下的文件删除 
         *  
         * @param filePath 
         */  
        public static void cleanCustomCache(String filePath) {  
            deleteFilesByDirectory(new File(filePath));  
        }  
      
        /** 
         * 清除本应用所有的数据 
         *  
         * @param context 
         * @param filepath 
         */  
        public static void cleanApplicationData(Context context, String... filepath) {  
            cleanInternalCache(context);  
            cleanExternalCache(context);  
            cleanDatabases(context);  
            cleanSharedPreference(context);  
            cleanFiles(context);  
            for (String filePath : filepath) {  
                cleanCustomCache(filePath);  
            }  
        }  
      
        /** 
         * 删除方法 这里只会删除某个文件夹下的文件,如果传入的directory是个文件,将不做处理 
         *  
         * @param directory 
         */  
        private static void deleteFilesByDirectory(File directory) {  
            if (directory != null && directory.exists() && directory.isDirectory()) {  
                for (File item : directory.listFiles()) {  
                    item.delete();  
                }  
            }  
        }  
    }

如何清理Android应用缓存相关推荐

  1. android清除缓存 代码,Android应用开发之Android应用清除缓存一般清理目录和代码的教程...

    本文将带你了解Android应用开发Android应用清除缓存一般清理目录和代码的教程,希望本文对大家学Android有所帮助. 一个应用安装完成,会有缓存,缓存一般分为内部存储的和外置的,内存中路径 ...

  2. Android图片缓存之Lru算法

    前言: 上篇我们总结了Bitmap的处理,同时对比了各种处理的效率以及对内存占用大小.我们得知一个应用如果使用大量图片就会导致OOM(out of memory),那该如何处理才能近可能的降低oom发 ...

  3. 浅谈Android视频缓存库

    背景 我们都了解播放器的作用就是把音视频压缩数据转换成原始的音视频数据渲染出来,这样我们就可以看到画面.听到声音了.这里的播放器就存在两个问题,第一个问题是视频源存在云端,我们每次看完视频之后重新观看 ...

  4. 360悬浮加速小火箭,内存清理,加速缓存

    360悬浮加速小火箭,内存清理,加速缓存 关于我 最近时间都比较的紧,处理不同项目的BUG,今天偷得半日闲,把剩下项目的一部分扔给了组长.有个问题没解决,做了两天也没完成,实在是没有办法了.也很感谢, ...

  5. android强制缓存写磁盘,优雅的构建 Android 项目之磁盘缓存(DiskLruCache)

    Android 的缓存技术 一个优秀的应用首先它的用户体验是优秀的,在 Android 应用中恰当的使用缓存技术不仅可以缓解服务器压力还可以优化用户的使用体验,减少用户流量的使用.在 Android ...

  6. Android 图片缓存之内存缓存技术LruCache,软引用

    Android 图片缓存之内存缓存技术LruCache,软引用

  7. Android图片缓存框架Glide

    Android图片缓存框架Glide Glide是Google提供的一个组件.它具有获取.解码和展示视频剧照.图片.动画等功能.它提供了灵活的API,帮助开发者将Glide应用在几乎任何网络协议栈中. ...

  8. 如何在使用eclipse的情况下,清理android项目中的冗余class文件和资源文件以及冗余图片...

    在我们迭代项目的过程中,经常会启用某些功能,或者修改某些界面的问题,那么问题来了,这样很容易出现大量的冗余.java文件,冗余资源文件,一些冗余的界面文件等.那么问题既然出现了,那么如何去解决呢,这就 ...

  9. 如何清理asp站点缓存的代码

    <% Call RemoveAllCache() Sub RemoveAllCache() Dim cachelist,i Call InnerHtml("UpdateInfo&quo ...

  10. 清空计算机网络缓存,【缓存清理工具】缓存清理软件_电脑缓存清理软件【最新】-太平洋电脑网...

    Windows7系统清理dns缓存失败解决方法介绍 在win7纯净版系统中有时候,发现网络突然变得很慢,甚至没有网络,怎么回事呢?可能是dns缓存导致的,这时候可以清理dns缓存尝试解决问题.但是有朋 ...

最新文章

  1. 深度学习-语义分割总结
  2. 三十四、动态规划解决01背包问题
  3. 我在OSC的第一篇博文
  4. word里的多级列表和项目编号是什么区别?
  5. SQL 2005启用组件Ad Hoc Distributed Queries
  6. MySQL数据库:常见经典SQL语句
  7. netty系列之:netty中各不同种类的channel详解
  8. Mac版本Navicat下载
  9. IDEA全文搜索排除无用的文件夹
  10. CoinList将销售价值4000万美元的社交代币RLY
  11. 【Tensorflow踩过的坑儿】pb转pbtxt
  12. Tomcat6 无法登陆Tomcat Manager
  13. 宝马「试水」神经形态芯片
  14. 打开我的收藏夹 -- Python数据分析杂谈
  15. python伪装ip地址_python伪造ip
  16. 微信小程序--优购页面制作
  17. Can‘t checkout because of unmerged files                 You have to resolve all merge conflicts bef
  18. 愿天下有情人都是失散多年的兄妹 (25分)
  19. zdm各命令的功能和作用_ZDM命令 注释
  20. Android wifi 破解

热门文章

  1. mysql 乐观锁 超卖_秒杀系统之一:防止超卖(乐观锁)
  2. php天籁吉他乐器介绍网站系统
  3. vue项目使用element-ui插件的安装使用
  4. python微信投票平台_Python——开发一个自动化微信投票器【附代码实例方法】
  5. (Unity)太空大战笔记
  6. mergeField解析(构造函数)
  7. android 360开机启动,手机360设置开机启动项
  8. vue_小项目_吃饭睡觉打豆豆
  9. win7旗舰版安装vs2005
  10. 南卡租房之Park Circle