精华内容
下载资源
问答
  • Android 清除系统缓存

    2014-03-07 15:26:53
    Android 清除系统缓存 所用技术: 1 反射调用Android系统里面hint API 2 ListView + BaseAdapter ListView优化:模型的复用和View对象的复用 3 ProgressBar
  • Android app缓存清理,封装了一个获取和清理缓存的工具类,可以直接使用,简化了开发的麻烦。
  • 代码如下:/* * 文 件 名: DataCleanManager.java * 描 述: 主要功能有清除内/外缓存清除数据库,清除sharedPreference,清除files和清除自定义目录 */ import java.io.File;import android.content.Context;...
  • 官方提供的方法中,计算缓存清除缓存 貌似对安卓系统没有效果,以下是采用原生安卓提供的方法,供有需要的同学参考,自己只有一台魅族手机,不知在其他机型上是否通用。以下是代码:var Intent = null,File = null...

    官方提供的方法中,计算缓存和清除缓存 貌似对安卓系统没有效果,以下是采用原生安卓提供的方法,供有需要的同学参考,自己只有一台魅族手机,不知在其他机型上是否通用。

    以下是代码:

    var Intent = null,

    File = null,

    Uri = null,

    main = null;

    var cacheCaleState=false;

    var os=null;

    mui.plusReady(function() {

    os=plus.os.name;

    if(os == "Android") {

    main = plus.android.runtimeMainActivity();

    Intent = plus.android.importClass("android.content.Intent");

    File = plus.android.importClass("java.io.File");

    Uri = plus.android.importClass("android.net.Uri");

    }

    initCacheSize();

    cacheDom.addEventListener('tap', function() {

    plus.nativeUI.confirm("确定清除缓存? 清除后App中的数据将会被清理,用户需重新登录", function(e) {

    if(e.index == 0) {

    console.log("cacheCaleState:"+cacheCaleState);

    if(os=="Android"){

    if(cacheCaleState==true){

    clearAllCache();

    }else{

    mui.toast("缓存计算中……");

    }

    }else if(os=="iOS"){

    clearCache(function(){

    //再次计算缓存大小

    initCacheSize();

    });

    }

    }

    }, "新消息通知", ["确定", "取消"]);

    }, false);

    });

    以下是方法体 计算缓存大小

    function initCacheSize (){

    var formatedSize;

    if(os=="Android"){

    formatedSize=formatSize(calcCache4Android());

    cacheCaleState=true;

    cacheDomChild.innerHTML="清除缓存" + formatedSize + "";

    }else if(os=="iOS"){

    calcCache(function(size) {

    cacheCaleState=true;

    formatedSize=formatSize(size);

    cacheDomChild.innerHTML="清除缓存" + formatedSize + "";

    });

    }else{

    mui.toast("未知的设备类型,无法计算缓存");

    cacheCaleState=false;

    }

    }

    /**

    * 计算缓存大小 官方提供方法,用于iOS

    */

    function calcCache(callback) {

    console.log("开始计算缓存大小");

    var finalSize = -1;

    plus.cache.calculate(function(size) {

    console.log(size + "byte");

    var sizeInt = parseInt(size);

    console.log("sizeInt" + sizeInt);

    return callback(finalSize);

    });

    }

    function calcCache4Android() {

    var cacheSize=0;

    console.log("start calc android");

    var sdRoot = main.getCacheDir();

    var files = plus.android.invoke(sdRoot,"listFiles");

    cacheSize += getFolderSize(files);

    console.log("android size-->"+cacheSize);

    return cacheSize;

    }

    function getFolderSize(files) {

    var size = 0;

    var len = files.length;

    for(var i = 0; i < len; i++) {

    // 如果下面还有文件

    if(files[i].isDirectory()) {

    size = size + getFolderSize(files[i]);

    } else if(!files[i].isHidden()){

    size = size + files[i].length();

    }

    }

    return size;

    }

    function formatSize(size){

    var fileSizeString;

    size=parseInt(size);

    console.log("我是size"+size);

    if(size == 0){

    fileSizeString = "0B";

    }else if(size < 1024){

    fileSizeString = size + "B";

    }else if(size < 1048576){

    fileSizeString = (size/1024).toFixed(2) + "KB";

    }else if (size < 1073741824){

    console.log("Mb"+size);

    fileSizeString = (size/1048576).toFixed(2) + "MB";

    console.log("/ after"+fileSizeString);

    }else{

    fileSizeString = (size/1073741824).toFixed(2) + "GB";

    }

    return fileSizeString;

    }

    以下是删除缓存的方法

    /**

    * 清除缓存

    */

    function clearCache(callback) {

    plus.storage.clear();

    plus.cache.clear(function() {

    console.log("清除了~~~return");

    return callback();

    });

    }

    function clearAllCache4Android(){

    console.log("清理所有缓存");

    console.log("main"+main.getCacheDir());

    var sdRoot = main.getCacheDir();

    var files = plus.android.invoke(sdRoot,"listFiles");

    deleteDir(files);

    //再次计算缓存大小

    initCacheSize();

    }

    function deleteDir(files){

    var len = files.length;

    console.log("len:"+len);

    for(var i = 0; i < len; i++) {

    console.log("delete file dir:"+files[i]);

    files[i].delete();

    }

    }

    方法名比较直观,就没有一一注释了。

    0442af1acb68101a1e7bb4887e7ff8ce.png

    79c36e986493a81d66b54a345f7b1003.png

    展开全文
  • 一些软件会产生较多的缓存,从而导致手机运行速度变慢,所以我们就需要来清理这些缓存,但有的网友不太清楚安卓手机缓存怎么清理,所以今天小编为大家整理分享的就是关于安卓手机清理缓存的具体步骤。具体步骤如下:...

    安卓手机使用时间久了之后,一些软件会产生较多的缓存,从而导致手机运行速度变慢,所以我们就需要来清理这些缓存,但有的网友不太清楚安卓手机缓存怎么清理,所以今天小编为大家整理分享的就是关于安卓手机清理缓存的具体步骤。

    具体步骤如下:

    1、首先打开手机,找到手机的设置选项,点击进入。

    60a669e886b51b4d1fdcf769c0ecdcfa.png

    2、在设置中找到更多设置,点击进入更多设置。

    397fe81d9843180607e6931c22764a7d.png

    3、在更多设置中,找到应用程序,点击进入应用程序界面。

    0749703dbbb78e9cca1662dbff9bfe43.png

    4、在应用程序中,可以看到已经分了大类,已安装的及默认应用设置等,点击已安装。

    bcf35b391c2ee0c991e7b2ce3fc373ff.png

    5、在已安装应用中,找到需要单独清理缓存的应用,点击进入,比如清理HBuilder的缓存,点击HBuilder进入。

    cef141dec13f2a51d896015552c02cbe.png

    6、在HBuilder应用程序信息中,点击存储功能,进入存储选项。

    4df52ebc9a78680d7aede0af3e6c614b.png

    7、在应用存储选项中,就可以看到清除数据、清楚缓存功能,点击进行该应用的数据及缓存清理。

    79a07ac9ee13f1a4ea684f3c7d61335c.png

    关于安卓手机清理缓存的具体步骤就为大家分享到这里啦,有需要的小伙伴可以按照上面的方法来操作哦。

    展开全文
  • 今天小编就为大家分享一篇Android 获取应用缓存大小与清除缓存的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 主要介绍了Android实现WebView删除缓存的方法,实例分析了Android针对WebView操作缓存的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • 主要介绍了深踩Android Studio 缓存的坑及解决方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 主要为大家详细介绍了Android实现清除应用缓存功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Android实现清理缓存功能讲解

    千次阅读 2020-03-12 10:46:19
    有时候项目中需要清理一些缓存数据(如:图片缓存、网络数据缓存等),当然也要对SharedPreferences存储的数据进行清理,当然App中有个这样的功能可能会提高逼格吧。 实现效果: 该效果是根据之前demo基础上实现的...

    有时候项目中需要清理一些缓存数据(如:图片缓存、网络数据缓存等),当然也要对SharedPreferences存储的数据进行清理,当然App中有个这样的功能可能会提高逼格吧。

    实现效果:
    在这里插入图片描述
    该效果是根据之前demo基础上实现的,所以上面部分的作用主要是为了产生缓存,方便看到清除的效果。

    这篇内容主要包括获取缓存的大小和对获取的缓存进行清除:

    1. 获取缓存的大小
     /**
         * 获取整体缓存大小
         * @param context
         * @return
         * @throws Exception
         */
        public static String getTotalCacheSize(Context context) throws Exception {
            long cacheSize = getFolderSize(context.getCacheDir());
            if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
                cacheSize += getFolderSize(context.getExternalCacheDir());
            }
            return getFormatSize(cacheSize);
        }
    
    1. 获取文件
    /**
         * 获取文件
         * Context.getExternalFilesDir() --> SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据
         * Context.getExternalCacheDir() --> SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据
         * @param file
         * @return
         * @throws Exception
         */
        public static long getFolderSize(File file) throws Exception {
            long size = 0;
            try {
                File[] fileList = file.listFiles();
                for (int i = 0; i < fileList.length; i++) {
                    // 如果下面还有文件
                    if (fileList[i].isDirectory()) {
                        size = size + getFolderSize(fileList[i]);
                    } else {
                        size = size + fileList[i].length();
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return size;
        }
    

    3.格式化单位

     /**
         * 格式化单位
         * @param size
         */
        public static String getFormatSize(long size) {
            long kb = size / 1024;
            int m = (int) (kb / 1024);
            int kbs = (int) (kb % 1024);
            return m + "." + kbs + "M";
        }
    

    4.清除缓存

      /**
         * 清空方法
         * @param context
         */
        public static void clearAllCache(Context context) {
            deleteDir(context.getCacheDir());
            if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
                deleteDir(context.getExternalCacheDir());
            }
        }
    
        private static boolean deleteDir(File dir) {
            if (dir != null && dir.isDirectory()) {
                String[] children = dir.list();
                for (int i = 0; i < children.length; i++) {
                    boolean success = deleteDir(new File(dir, children[i]));
                    if (!success) {
                        return false;
                    }
                }
            }
            return dir.delete();
        }
    

    为了方便,将清除缓存的相关方法抽取成工具类,可以直接调取使用,完整的工具类如下:

    
    public class CacheDataManager {
        /**
         * 获取整体缓存大小
         * @param context
         * @return
         * @throws Exception
         */
        public static String getTotalCacheSize(Context context) throws Exception {
            long cacheSize = getFolderSize(context.getCacheDir());
            if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
                cacheSize += getFolderSize(context.getExternalCacheDir());
            }
            return getFormatSize(cacheSize);
        }
    
        /**
         * 获取文件
         * Context.getExternalFilesDir() --> SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据
         * Context.getExternalCacheDir() --> SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据
         * @param file
         * @return
         * @throws Exception
         */
        public static long getFolderSize(File file) throws Exception {
            long size = 0;
            try {
                File[] fileList = file.listFiles();
                for (int i = 0; i < fileList.length; i++) {
                    // 如果下面还有文件
                    if (fileList[i].isDirectory()) {
                        size = size + getFolderSize(fileList[i]);
                    } else {
                        size = size + fileList[i].length();
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return size;
        }
    
        /**
         * 格式化单位
         * @param size
         */
        public static String getFormatSize(long size) {
            long kb = size / 1024;
            int m = (int) (kb / 1024);
            int kbs = (int) (kb % 1024);
            return m + "." + kbs + "M";
        }
    
        /**
         * 清空方法
         * @param context
         */
        public static void clearAllCache(Context context) {
            deleteDir(context.getCacheDir());
            if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
                deleteDir(context.getExternalCacheDir());
            }
        }
    
        private static boolean deleteDir(File dir) {
            if (dir != null && dir.isDirectory()) {
                String[] children = dir.list();
                for (int i = 0; i < children.length; i++) {
                    boolean success = deleteDir(new File(dir, children[i]));
                    if (!success) {
                        return false;
                    }
                }
            }
            return dir.delete();
        }
    }
    

    工具类的使用:

    • 获取缓存总量
    String cacheAllSize = CacheDataManager.getTotalCacheSize(this)
    
    • 清除缓存
    CacheDataManager.clearAllCache(this);
    

    主要的功能点已经写的很清楚啦,到这里就结束了,需要完整demo的童鞋下方公众号回复:“清除缓存” 获取哦!


    小编整理了一份Android电子书籍,需要的童鞋关注底部公众号(longxuanzhigu)回复:“e_books” 即可获取哦!
    在这里插入图片描述

    以下是公众号(longxuanzhigu),之后发布的文章会同步到该公众号,方便交流学习Android知识,欢迎关注:

    在这里插入图片描述

    展开全文
  • 安卓缓存清除和计算

    2021-06-03 01:43:47
    官方提供的方法中,计算缓存清除缓存 貌似对安卓系统没有效果,以下是采用原生安卓提供的方法,供有需要的同学参考,自己只有一台魅族手机,不知在其他机型上是否通用。以下是代码:var Intent = null,File = null...

    官方提供的方法中,计算缓存和清除缓存 貌似对安卓系统没有效果,以下是采用原生安卓提供的方法,供有需要的同学参考,自己只有一台魅族手机,不知在其他机型上是否通用。

    以下是代码:

    var Intent = null,

    File = null,

    Uri = null,

    main = null;

    var cacheCaleState=false;

    var os=null;

    mui.plusReady(function() {

    os=plus.os.name;

    if(os == "Android") {

    main = plus.android.runtimeMainActivity();

    Intent = plus.android.importClass("android.content.Intent");

    File = plus.android.importClass("java.io.File");

    Uri = plus.android.importClass("android.net.Uri");

    }

    initCacheSize();

    cacheDom.addEventListener('tap', function() {

    plus.nativeUI.confirm("确定清除缓存? 清除后App中的数据将会被清理,用户需重新登录", function(e) {

    if(e.index == 0) {

    console.log("cacheCaleState:"+cacheCaleState);

    if(os=="Android"){

    if(cacheCaleState==true){

    clearAllCache();

    }else{

    mui.toast("缓存计算中……");

    }

    }else if(os=="iOS"){

    clearCache(function(){

    //再次计算缓存大小

    initCacheSize();

    });

    }

    }

    }, "新消息通知", ["确定", "取消"]);

    }, false);

    });

    以下是方法体 计算缓存大小

    function initCacheSize (){

    var formatedSize;

    if(os=="Android"){

    formatedSize=formatSize(calcCache4Android());

    cacheCaleState=true;

    cacheDomChild.innerHTML="清除缓存" + formatedSize + "";

    }else if(os=="iOS"){

    calcCache(function(size) {

    cacheCaleState=true;

    formatedSize=formatSize(size);

    cacheDomChild.innerHTML="清除缓存" + formatedSize + "";

    });

    }else{

    mui.toast("未知的设备类型,无法计算缓存");

    cacheCaleState=false;

    }

    }

    /**

    * 计算缓存大小 官方提供方法,用于iOS

    */

    function calcCache(callback) {

    console.log("开始计算缓存大小");

    var finalSize = -1;

    plus.cache.calculate(function(size) {

    console.log(size + "byte");

    var sizeInt = parseInt(size);

    console.log("sizeInt" + sizeInt);

    return callback(finalSize);

    });

    }

    function calcCache4Android() {

    var cacheSize=0;

    console.log("start calc android");

    var sdRoot = main.getCacheDir();

    var files = plus.android.invoke(sdRoot,"listFiles");

    cacheSize += getFolderSize(files);

    console.log("android size-->"+cacheSize);

    return cacheSize;

    }

    function getFolderSize(files) {

    var size = 0;

    var len = files.length;

    for(var i = 0; i < len; i++) {

    // 如果下面还有文件

    if(files[i].isDirectory()) {

    size = size + getFolderSize(files[i]);

    } else if(!files[i].isHidden()){

    size = size + files[i].length();

    }

    }

    return size;

    }

    function formatSize(size){

    var fileSizeString;

    size=parseInt(size);

    console.log("我是size"+size);

    if(size == 0){

    fileSizeString = "0B";

    }else if(size < 1024){

    fileSizeString = size + "B";

    }else if(size < 1048576){

    fileSizeString = (size/1024).toFixed(2) + "KB";

    }else if (size < 1073741824){

    console.log("Mb"+size);

    fileSizeString = (size/1048576).toFixed(2) + "MB";

    console.log("/ after"+fileSizeString);

    }else{

    fileSizeString = (size/1073741824).toFixed(2) + "GB";

    }

    return fileSizeString;

    }

    以下是删除缓存的方法

    /**

    * 清除缓存

    */

    function clearCache(callback) {

    plus.storage.clear();

    plus.cache.clear(function() {

    console.log("清除了~~~return");

    return callback();

    });

    }

    function clearAllCache4Android(){

    console.log("清理所有缓存");

    console.log("main"+main.getCacheDir());

    var sdRoot = main.getCacheDir();

    var files = plus.android.invoke(sdRoot,"listFiles");

    deleteDir(files);

    //再次计算缓存大小

    initCacheSize();

    }

    function deleteDir(files){

    var len = files.length;

    console.log("len:"+len);

    for(var i = 0; i < len; i++) {

    console.log("delete file dir:"+files[i]);

    files[i].delete();

    }

    }

    方法名比较直观,就没有一一注释了。

    0442af1acb68101a1e7bb4887e7ff8ce.png

    79c36e986493a81d66b54a345f7b1003.png

    展开全文
  • android清理缓存

    2019-01-03 11:33:44
    android工具清理app缓存文件,简单好用的清除缓存工具。anroid清除缓存文件。
  • 主要介绍了Android中Glide获取缓存大小并清除缓存图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 清除缓存功能算是个十分鸡肋的功能了,但是大多数产品或者客户都希望有这么个东西显得APP功能完善,网上有很多,但是对于新手来说,那些感觉并不详细,我贴个完整到小白都能懂的。下面是工具类,包含清除缓存、获取...
  • 1.此Demo是一个动画Demo,模拟360清理缓存动画,火箭从底部弹起,在顶部消失 2.附带资源文件,可以监听火箭动画执行,配合清理缓存代码
  • 今天小编就为大家分享一篇Android 8.0的缓存大小和缓存清理接口方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • dns缓存清理工具

    2018-07-16 16:14:55
    dns清理工具、一键清理缓存。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
  • android 清除缓存功能

    2021-05-28 02:09:29
    本应用数据清除管理器DataCleanManager.java 是从网上摘的 忘了 名字了 对不住了加载一个webview 产生缓存 众所周知的webview是产生缓存的主要原因之一webview加载之后 点击按钮 查询缓存 然后清除缓存 再查询缓存 ...
  • android清理缓存实现,供大家参考,具体内容如下 一. 清理缓存首先要搞清楚清理哪些东西 1、app本身的功能比如录像,录音,更新都会产生文件,需要清理 2、app的默认缓存地址cache 二. 搞清楚要清理的文件夹位置 1、...
  • Android视频缓存

    2018-04-10 10:37:23
    Android播放网络视频,视频一边播放,一边缓存本地,下次进入如视频为同一个则直接从本地缓存读取并播放。(使用VideoView,并处理VideoView播放时候不能全屏的问题。)
  • 主要介绍了Android使用HBuilder的缓存方法 ,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
  • }/*** 清除缓存 *@paramcontext*/ public static voidclearAllCache(Context context) { deleteDir(context.getCacheDir());if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { ...
  • 我们先来看一个熟悉的界面:这是手机的「设置」——「应用」里的已安装应用的详情页,这里面会显示缓存的大小,而且提供了清理缓存的功能,这就是我们做「系统缓存清理想做的事情。这里显示的大小是如何计算出来的...
  • Some Android phones store temporary files used for things like OS updates in a cache partition. You may have seen recommendations across the web suggesting that you clear this partition from time to t...
  • 例如笔者参与开发的一款产品的设置界面就提供了清除缓存的功能,如下图所示:在贴一大段代码之前,先普及 Android 的相关知识点:我们知道,手机有以下3种储存位置:1.系统文件(注:这个是系统...
  • Android清理缓存功能实现源码

    热门讨论 2014-10-11 17:19:43
    该代码是博客《 Android清理缓存功能实现》的源码。
  • 安卓系统dns缓存策略

    万次阅读 2017-09-11 15:37:38
    安卓客户端上报出不少UnknownHostException,引起了大家的重视,于是决定深入研究一番。 UnknownHostException是个什么异常?让我们来谷歌的源代码是怎么说的: /** * Thrown when a hostname can not be resolved...
  • 前言:缓存这个问题的出现,真真切切的感受到微信浏览器这鬼东西对前端程序员充满了恶意,捋捋自己...手动清理缓存微信浏览器在ios和安卓中浏览器内核不一样;从而不同的系统和不同版本的微信方式也各有不同。清理缓...
  • 本文实例讲述了Android开发之删除项目缓存的方法。分享给大家供大家参考,具体如下: 如何删除项目的缓存: getCacheDir()能够得到当前项目的缓存地址 在项目中经常会使用到WebView 控件,当加载html 页面时,会在/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,968
精华内容 19,187
关键字:

安卓系统缓存清理