精华内容
下载资源
问答
  • Flutter 获取应用缓存和清理缓存

    千次阅读 2019-11-12 08:30:53
    Flutter 获取应用缓存和清理缓存   在 Android 和 iOS 中,都有需要获取应用缓存和清除应用缓存的功能,那么在 Flutter 里面应该怎么做呢?   要想获取到应用缓存,我们就必须找到用来装缓存数据的文件夹,所以...

    Flutter 获取应用缓存和清理缓存

      在 Android 和 iOS 中,都有需要获取应用缓存和清除应用缓存的功能,那么在 Flutter 里面应该怎么做呢?

      要想获取到应用缓存,我们就必须找到用来装缓存数据的文件夹,所以这里我们需要引入 path_provider , 用来获取 Android 和 iOS 的缓存文件夹,然后再根据文件循环计算出缓存文件的大小。

      首先,我们先简单介绍一下 path_provider 中获取文件夹的方法:

    getExternalStorageDirectory();  // 在iOS上,抛出异常,在Android上,这是getExternalStorageDirectory的返回值
    getTemporaryDirectory();  // 在iOS上,对应NSTemporaryDirectory()返回的值,在Android上,这是getCacheDir的返回值。
    getApplicationDocumentsDirectory();  // 在iOS上,这对应NSDocumentsDirectory,在Android上,这是AppData目录
    

      直到如何使用 path_provider 后,我们正式开始:

    1、获取缓存(加载缓存)

    ///加载缓存
      Future<Null> loadCache() async {
        Directory tempDir = await getTemporaryDirectory();
          double value = await _getTotalSizeOfFilesInDir(tempDir);
          /*tempDir.list(followLinks: false,recursive: true).listen((file){
              //打印每个缓存文件的路径
            print(file.path);
          });*/
          print('临时目录大小: ' + value.toString());
          setState(() {
            _cacheSizeStr = _renderSize(value);  // _cacheSizeStr用来存储大小的值
          });
      }
    

    2、循环计算文件的大小(递归)

     Future<double> _getTotalSizeOfFilesInDir(final FileSystemEntity file) async {
        if (file is File) {
             int length = await file.length();
             return double.parse(length.toString());
        }
       if (file is Directory) {
             final List<FileSystemEntity> children = file.listSync();
             double total = 0;
             if (children != null)
                  for (final FileSystemEntity child in children)
                    total += await _getTotalSizeOfFilesInDir(child);
             return total;
          }
          return 0;
      }
    

    3、格式化缓存文件大小

    _renderSize(double value) {
        if (null == value) {
          return 0;
        }
        List<String> unitArr = List()
          ..add('B')
          ..add('K')
          ..add('M')
          ..add('G');
        int index = 0;
        while (value > 1024) {
          index++;
          value = value / 1024;
        }
        String size = value.toStringAsFixed(2);
        return size + unitArr[index];
      }
    

    4、清除缓存

      通过 path_provider 得到缓存目录,然后通过递归的方式,删除里面所有的文件。

    void _clearCache() async {
        Directory tempDir = await getTemporaryDirectory();
          //删除缓存目录
          await delDir(tempDir);
          await loadCache();
          FlutterToast.showToast(msg: '清除缓存成功');
      }
      ///递归方式删除目录
      Future<Null> delDir(FileSystemEntity file) async {
        if (file is Directory) {
                final List<FileSystemEntity> children = file.listSync();
                for (final FileSystemEntity child in children) {
                  await delDir(child);
                }
              }
          await file.delete();
      }
    
    展开全文
  • 今天小编就为大家分享一篇Android 获取应用缓存大小与清除缓存的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 应用缓存 应用程序缓存Application CacheHTML5 引入了应用程序缓存这意味着 web 应用可...- 浏览器将只从服务器下载更新过或更改过的资源实现应用缓存启用应用程序缓存请在文档的 <html> 标签中包含 manifest 属性每
  • Android 清理应用缓存

    千次阅读 2017-01-04 13:27:57
    清理应用缓存: package base.util; import android.app.ActivityManager; import android.content.Context; import android.content.pm.IPackageDataObserver; import android.content.pm.PackageManager; ...

    清理应用缓存:

    package base.util;
    
    import android.app.ActivityManager;
    import android.content.Context;
    import android.content.pm.IPackageDataObserver;
    import android.content.pm.PackageManager;
    
    import com.stone.mymarket.DMApplication;
    
    import java.lang.reflect.Method;
    
    /**
     * desc   : 缓存清理
     * author : stone
     * email  : aa86799@163.com
     * time   : 04/01/2017 10 07
     */
    public class ClearUserCacheUtil {
    
        /**
         * 根据 packageName 清理应用缓存
         *
         * @param packageName
         * @param observer    接口回调
         */
        public static void clearApplicationUserData(String packageName, IPackageDataObserver observer) {
            /*
            ActivityManager 中, 根据 packageName 清理 user data 的方法 是一个隐藏方法
                在PackageManager也有一个同样的方法,且参数一致,效果应该是一样的
            需要通过反射来调用
             */
            try {
                Method clearApp = ActivityManager.class.getMethod("clearApplicationUserData",
                        String.class, IPackageDataObserver.class);
                LogUtil.d("ActivityManagerUtil", "clearApp: " + clearApp.getName());
                ActivityManager am = (ActivityManager) DMApplication.getInstance()
                        .getSystemService(Context.ACTIVITY_SERVICE);
                clearApp.invoke(am, packageName, observer);
            } catch (Exception e) {
                LogUtil.e("ActivityManagerUtil", e.getMessage());
            }
        }
    
        /**
         * 清理所有应用程序的缓存
         */
        public static void freeAllAppsCache(IPackageDataObserver observer) {
            PackageManager pm = DMApplication.getInstance().getPackageManager();
            LogUtil.i("freeAllAppsCache", "开始清理系统缓存");
            try {
                Method freeStorageAndNotify = pm.getClass()
                        .getMethod("freeStorageAndNotify", long.class, IPackageDataObserver.class);
                long freeStorageSize = Long.MAX_VALUE;
    
                /*
                PackageManager#freeStorageAndNotify(long size, IPackageDataObserver observer)
                 这是一个隐藏的方法,需要反射调用。用于清理所有应用的缓存
                当存储空间中的可用内存 大于 请求的 size时,将不做清理;反之进行清理
                 */
                freeStorageAndNotify.invoke(pm, freeStorageSize, observer);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    

    注意,以上的工具方法,都使用了反射,在代码混淆的时候要keep反射的类名和方法

    经测试,第一个清理单一应用的缓存方法,一般无法使用,因其需要app有root权限,即是

    系统级app;后一个方法可以使用

    展开全文
  • html5应用缓存

    千次阅读 2015-09-17 23:37:56
    应用缓存的优势 离线浏览,用户可以在离线的时候浏览已经加载并且缓存好的数据 加快加载速度。 减少服务器负载。 实现用缓存如果启用应用程序缓存,需要在标签当中包含manifest属性,manifest文件的建议扩展名是:”....

    在html5当中引入了应用程序缓存,这意味着web应用可以进行缓存,并且可以在没有网络连接的时候进行访问。

    应用缓存的优势

    • 离线浏览,用户可以在离线的时候浏览已经加载并且缓存好的数据
    • 加快加载速度。
    • 减少服务器负载。

    实现用缓存

    如果启用应用程序缓存,需要在<html>标签当中包含manifest属性,manifest文件的建议扩展名是:”.appcache”

    manifest文件

    manifest文件为我们提供了三种缓存的方式:
    version n.n :version表示当前manifest的版本,当version发生变化的时候,此时当用户再次加载的时候,会将CACHE标签下列出的所有文件重新下载一次。
    - CACHE MANIFEST:在此标题下列出的文件,将在首次下载后进行缓存。
    - NETWORK: 在此标题下列出的文件需要与服务器的链接,且不会被缓存。
    - FALLBACK: 在此标题下列出的文件,规定访问缓存失败后,备用访问的资源,第一个是访问源,第二个是替换文件*.html /offline.html,例如404页面。

    缓存的应用

    这里我创建一个web工程,并且新建一个html文件:
    index.html

    <!DOCTYPE html>
    <html manifest="index.appcache">
      <head>
        <title>index.html</title>
        <link rel="stylesheet" type="text/css" href="./css/style.css">
      </head> 
      <body>
        <h1>This is my HTML page</h1>
      </body>
    </html>

    style.css

    @CHARSET "UTF-8";
    h1 {
        color: aqua;
    }

    可以看到这里,我的页面很简单,并且引用了一个style.css样式文件。并且在<html>标签当中,指定了缓存文件index.appcache.
    index.appcache 内容如下:

    CACHE MANIFEST
    #version 1.0
    CACHE:
    index.html
    css/style.css

    可以看到,这里我们使用CACHE类型的缓存,表示需要缓存index.html和css/style.css这两个文件。此时打开服务器,浏览该网页,在关闭服务器,会发现该网页同样可以访问,此时按下F12,打开开发者选项,会发现有如下缓存:
    这里写图片描述

    同时也可以使用NETWORK类型的缓存,来表示那些文件是需要联网下载的,这里我将css/style.css文件写入到NETWORK类型的缓存当中。

    CACHE MANIFEST
    #version 1.0
    
    CACHE:
    index.html
    
    NETWORK:
    css/style.css

    首先需要手动清除一下之前缓存的记录。然后打开服务器,浏览http://localhost:8080/html5cache/index.html,此时显示效果如下:
    这里写图片描述
    可以看到此时只是缓存了html页面,并没有缓存css/style.css文件,此时关闭服务器,再次刷新该页面,效果如下:
    这里写图片描述
    可以看到此时,就只是加载了html页面,并么有加载css文件,所以h1标签的字体是默认的。

    更新缓存

    如果需要更新缓存,比如这里我更改了html中的文字,此时再次访问http://localhost:8080/html5cache/index.html 的时候,是不会加载最新的页面文字的,这是因为浏览器默认会到缓存中查找,如果缓存中有,则直接从缓存中取出,因此我们需要更新缓存文件”index.appcache”中的version即可,如下:

    CACHE MANIFEST
    #version 1.1
    
    CACHE:
    css/style.css
    index.html
    
    NETWORK:
    
    FALLBACK:

    这里,我将version更改了1.1,此时再次访问该页面的时候, 是会到服务其下载最新的页面,说到这里,缓存的缺点就出来了,就是哪怕我一个页面中只更新一行文字,但是当我更改了”index.appcache”文件中的version值之后,就会重新将CACHE中定义的所有内容,重新下载一次。

    使用js自动更新缓存

    另外,我们还可以使用applicationcache对象来自动更新缓存。如下:

    <script type="text/javascript">
             //添加页面加载函数
            window.addEventListener('load', function(e) {
    
              //为applicationCache对象添加updateready事件 
              window.applicationCache.addEventListener('updateready', function(e) {
                //表示manifest中列举的文件已经重新下载并更新成功
                if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
                  //使用swapCache()方法更新到应用程序中
                  window.applicationCache.swapCache();
    
                  if (confirm('A new version of this site is available. Load it?')) {
                    //重新加载当前页面
                    window.location.reload();
    
                  }
    
                } else {
                    //manifest文件没有变化
                    console.log("manifest 没有改变");
                }
    
              }, false);
    
            }, false);
        </script>

    applicationcache是window对象的直接子对象,该对象的事件列表如下:
    这里写图片描述
    status 返回缓存的状态

    可选值匹配常量描述
    0appCache.UNCACHED未缓存
    1appCache.IDLE闲置
    2appCache.CHECKING检查中
    3appCache.DOWNLOADING下载中
    4appCache.UPDATEREADY已更新
    5appCache.OBSOLETE失效

    方法

    方法名匹配常量
    update()发起应用程序缓存下载进程
    abort()取消正在进行的缓存下载
    swapcache()切换成本地最新的缓存环境

    web workers

    web workers是运行在后台的脚本,独立于其他的脚本,不会影响页面的性能。类似于android开发中的handler。将繁重耗时的计算放到web worker中来实现,然后将处理的结果返回给主UI线程来显示。

    web workers方法

    • postMessage() :用于向html页面回传一段消息。
    • terminate() :终止web workers,并且释放计算机资源。

    web workers简单实现

    下面使用web workers简单实现一数字更新的demo:
    新建一个web工程,创建index.html

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <script src="index.js"></script>
    </head>
    <body>
        <div id="numDiv">0</div>
    </body>
    </html>

    这里在index.html文件当中引入了index.js文件。
    index.js

    var numDiv;
    window.onload = function(){
        numDiv = document.getElementById("numDiv");
        var work = new Worker("count.js");
        work.onmessage = function(e) {
            //alert(e.data);
            numDiv.innerHTML = e.data;
        };
    };

    可以看到,这里讲更新数据的具体操作,使用Worker来更新,在worker当中加载了count.js文件来做一些耗时,复杂的计算。然后使用worker的onmessage回调方法,将count.js返回的结果重新显示给numDiv。
    count.js

    var countNum = 0;
    function count(){
        postMessage(countNum);//通过postMessage方法将计算结果回传给调用者
        countNum++;
        setTimeout(count,1000);
    }
    count();

    count.js文件比较简单,每隔一秒更新countNum的值,然后回传给调用者,也就是这里的index.js

    此时运行效果如下:
    这里写图片描述

    下面添加一个开始停止的控制按钮:

     <button id="start">start</button>
     <button id="stop">stop</button>

    index.js

    var numDiv;
    var work;
    window.onload = function(){
        numDiv = document.getElementById("numDiv");
        var start = document.getElementById("start");
        var stop = document.getElementById("stop");
        start.onclick = startWorker;
        stop.onclick = stopWorker;
    
    };
    
    function startWorker() {
        if (work) { //如果work存在,则直接返回
            return;
        } else {
            work = new Worker("count.js");
            work.onmessage = function(e) {
                numDiv.innerHTML = e.data;
            };
        }
    }
    
    function stopWorker() {
        if (work) {//如果worker存在,则终止并且为其重新赋值
            work.terminate();
            work = null;
        }
    }

    此时运行效果如下:
    这里写图片描述

    另外我们还可以通过navaigator对象的onLine属性来判断当前浏览器是否在线,该属性属于只读属性,会返回boolean类型的值。

    if(window.navigator.onLine) {
        //在线
    } else {
        //离线
    }
    展开全文
  • 浏览器缓存机制(2)-应用缓存

    千次阅读 2015-03-14 22:31:33
    浏览器缓存机制(2)-应用缓存 在公司项目中,一些移动版的WEB页面恰好用到了应用缓存,故顺便写篇文章来总结下应用缓存方面的内容。 1.应用缓存简介应用缓存(application cache)是HTML5提供的一套缓存机制,使得WEB...

    该文章在简书上的链接浏览器缓存机制2-应用缓存

    浏览器缓存机制(2)-应用缓存

    在公司项目中,一些移动版的WEB页面恰好用到了应用缓存,故顺便写篇文章来总结下应用缓存方面的内容。

    1.应用缓存简介

    应用缓存(application cache)是HTML5提供的一套缓存机制,使得WEB应用可以离线运行。除了一些旧版本的IE外,现代浏览器如firefox,chrome,safari大部分都是支持HTML5标准的。使用应用缓存主要优势有:

    • 离线浏览:用户可以在离线状态浏览网页内容。
    • 速度更快: 因为数据存储在浏览器缓存中,浏览器只会下载服务器发生改变的资源(只有.appcache文件状态变化时才会重新下载.appcache文件指定的缓存资源),这样可以减轻服务器的负载。

    2.应用缓存配置

    要开启应用缓存,需要在web页面的html标记中加上manifest属性,如下是我的测试页面test.html代码:

    <html manifest="test.appcache">
      <head><title>appcache</title></head>
      <body>test appcache<img src="/test.gif"></img></body>  
    </html>

    其中test.appcache文件为缓存清单文件(cache manifest),缓存的资源都是在这个清单文件指定。使用了应用缓存后,加载资源的流程是这样的(摘自参考资料1):

    • 1)当浏览器访问一个包含manifest属性的文档时,如果应用缓存不存在,则浏览器加载文档,获取该清单中需要缓存的文件列表,生成应用缓存的第一个版本。

    • 2)后续对该文档以及清单文件中列出的缓存资源的访问会使得浏览器直接从应用缓存加载。同时,浏览器还会向window.applicationCache对象发送一个checking事件,在遵循经典缓存的前提下获取清单文件,关于HTTP经典缓存机制请参见前一篇文章

    • 3)如果当前缓存清单文件是副本是最新的,浏览器将向applicationCache对象发送一个noupdate事件,至此更新过程结束。因此,如果你在服务器上修改了任何缓存资源,需要同时修改清单文件,这样浏览器才知道你的修改,此外,也要

    • 4)如果缓存清单文件已经修改,则清单文件中列出的缓存资源(也包括通过applicationCache.add方法添加到缓存中的文件)会放到一个临时缓存中,对于每个加入到临时缓存的文件,浏览器会向applicationCache发送一个progress事件。如果出现任何错误,浏览器会发送一个error事件,并暂停更新。

    • 5)一旦所以文件都获取成功,它们会被自动移送到真正的离线缓存中,并向applicationCache 对象发送一个 cached 事件。鉴于文档早已经被从缓存加载到浏览器中,所以更新后的文档不会重新渲染,直到页面重新加载(可以手动或通过程序).也就是说,如果你的缓存资源更新了,缓存清单文件也更新了,第一次加载页面的时候并不会更新文档,只有等到页面重新加载的时候才会更新。

    为了方便测试,如果需要清除离线缓存,chrome可以通过设置中的清除浏览器数据或者直接访问chrome://appcache-internals/来清除,其他浏览器参照参考资料1.

    3.缓存清单文件

    一个典型的缓存清单文件test.appcache如下:

    CACHE MANIFEST
    # v1 - 2015-03-14 23:23
    # This is a comment.
    CACHE:
    test.html
    nomanifest.html
    
    NETWORK:
    *
    
    FALLBACK:
    /fallback fallback.html

    缓存清单文件第一行必须是CACHE MANIFEST,然后可以加上注释(以#开头)。此外就是三个段落标题,含义如下:

    段落标题说明
    CACHE显示记录,下面列表是需要切换到应用缓存的显示资源
    NETWORK网络记录,需要从网络访问的白名单列表
    FALLBACK后备记录,请求资源失败时使用

    一个应用缓存至少会包含一个资源,由 URI 指定。所有资源除了上面提到的显示记录,网络记录,后备记录外,还有一个类别叫主记录。下面一一来看一下:

    1)显示记录

    每行都是一个合法的URI与一个要缓存的资源相关联(本段落内不允许通配符)。每行的URI前后允许出现空白字符。显示记录是显示指定的需要加入到应用缓存的资源列表,比如上面示例的test.appcache中需要显示缓存的文件为test.html,nomanifest.html。注意的是,不是所有的文档html属性都要加manifest属性,比如我这个列表里面的nomanifest.html文档就没有manifest属性,但是只要有包含manifest属性的文档被访问后,就会自动加入到应用缓存。

    2)网络记录

    每一行都是一个合法URI,该段落可以用通配符,比如上面的*,指示了除了应用缓存中之外的资源需要通过网络获取。如果这里不设置的话,那么没有在应用缓存中的资源就无法访问。比如我这里如果不指定NETWORK的话,则test.gif这个图片就无法访问到。

    3)后备记录

    每一行都是一个合法URI(与一个资源关联),当指定的资源无法访问时访问后面的关联资源。比如访问/fallback或者它的子路径比如/fallback/child路径时,如果没有对应的资源,则会访问fallback.html.

    4)主记录

    主记录是指html标签中包含了manifest属性的文档,比如下面的main.html。主记录即便没有在显示记录中列出,也会在访问时加入到应用缓存。如main.html作为主记录,虽然没有在CACHE列表中,但是在访问的时候,同样会被加入到应用缓存中。

    #main.html
    <html manifest="test.appcache">
      <head><title>main</title></head>
      <body>main html</body>
    </html>

    4.缓存状态(摘自参考资料1)

    • UNCACHED(未缓存):一个特殊的值,用于表明一个应用缓存对象还没有完全初始化。

    • IDLE(空闲):应用缓存此时未处于更新过程中。

    • CHECKING(检查):清单已经获取完毕并检查更新。

    • DOWNLOADING(下载中):下载资源并准备加入到缓存中,这是由于清单变化引起的。

    • UPDATEREADY(更新就绪):一个新版本的应用缓存可以使用。有一个对应的事件 updateready,当下载完毕一个更新,并且还未使用 swapCache() 方法激活更新时,该事件触发,而不会是 cached 事件。

    • OBSOLETE(废弃):应用缓存现在被废弃。
      可以通过下面的代码来测试缓存清单更新情况:

    function onUpdateReady() {
      alert('found new version!');
    }
    window.applicationCache.addEventListener('updateready', onUpdateReady);
    if(window.applicationCache.status === window.applicationCache.UPDATEREADY) {
      onUpdateReady();
    }

    5.总结

    • 显示记录中的资源会被加入应用缓存中。显示记录中的资源文档不一定要在html标签加manifest属性,只要在列表中都会加入应用缓存。
    • 主记录是指html标签包含manifest属性的文档,即便没有在显示记录的列表中,也会加入应用缓存。
    • 应用缓存资源更新后,缓存清单文件也一定要同步更新,不然浏览器没有办法知晓缓存资源的变化。
    • NETWORK段落必须设置,否则其他资源无法访问。
    • 缓存清单文件本身不要在显示记录中,也不要被服务器以任何方式缓存。比如apache可以这样设置缓存清单文件不被缓存。
      ExpiresByType text/cache-manifest "access plus 0 seconds"
    • 如果访问缓存文档时加了参数,比如/test.html?name=test这样,那么也会直接访问应用缓存并加入到应用缓存中。如下面是访问chrome://appcache-internals/得到的记录,可以看到各种类型的记录:
    Flags   URL Size (headers and data)
    Fallback,   http://localhost/fallback.html  295 B
    Master, http://localhost/main.html  703 B
    Explicit,   http://localhost/nomanifest.html    305 B
    Manifest,   http://localhost/test.appcache  419 B
    Explicit,   http://localhost/test.html  732 B
    Master, http://localhost/test.html?name=test    732 B

    6.参考资料

    使用应用缓存(参考了大部分内容并原文摘抄不少内容,向原作者表示感谢)

    展开全文
  • HTML5之离线应用缓存

    千次阅读 2015-11-16 16:21:26
    今天说说HTML5的新特性之一:离线应用缓存。 离线应用,就是在没有网络的情况下访问Web应用程序时,实际上是访问已下载的离线文件资源,并使得Web应用程序正常运行。特性开发者需要注意三个特性:1. 离线资源缓存在...
  • 请问下web应用缓存 jsp缓存 还有数据库缓存是指什么,前两者有什么异同
  • App支持H5轻应用缓存 有木有做过 或者给点建议的 因为要调用缓存里的数据 ,使用接口
  • 最近在做appStore时,涉及到一个第三方app下载视频后将车机存储撑爆的问题,从而影响到我们车机自带的app...缓存获取获取各个应用程序的缓存大小,可以通过使用PackageManager.getPackageSizeInfo方法来获取,但是它
  • 清除electron应用缓存

    万次阅读 2020-03-09 14:25:53
    }) } }, }, { label: '清除缓存数据', accelerator: 'CmdOrCtrl+Shift+Delete', click: (item,focusedWindow) => { if (focusedWindow) { focusedWindow.webContents.session.clearStorageData(clearObj);...
  • Android 清除指定应用缓存

    千次阅读 2013-05-24 10:19:41
    * 清除指定应用缓存,即删除data/data/packageName/cache目录下文件 * @param mContext * @param packageName */ public void clearCache(final Context mContext,final String packageName){ (new Thread(){ @...
  • H5引入了应用程序缓存,意味着WEB应用可进行缓存,可在没有因特网时进行访问 应用程序缓存的优势:  离线缓存:用户可在离线时使用它们  速度:加载速度更快  减少服务器负载:浏览器只从服务器下载更新的...
  • 获得各个应用程序缓存大小,需要使用getPackageSizeInfo方法(可以成系统app setting中查到),它是PackageManager的公共方法,但它被隐藏了。所有要用反射调用该方法。 * @hide  */  public abstract void ...
  • 文件被存储在应用缓存中--从包括web应用的缓存清单(cache manifest)中获取的一系列资源。 应用缓存(The application cache) 每个web应用的资源仓库用它自己的应用缓存。因为应用程序可以共享资源(甚
  • // 使用plus.cache.calculate 获取应用缓存大小, plus.cache.calculate( ( size ) =>{ //size是多少个字节单位是b //你可以做下面相应的处理 if(size<1024){ this.all=size+'B'; } else if(size/...
  • Android4.2系统应用缓存12KB残留(一)

    千次阅读 2013-05-03 15:25:00
    Android4.2系统应用缓存12KB残留(一) Android4.2系统应用缓存12KB残留(二) 分享要点: Android4.2的应用重复Clear Cache残留12KB是Cache目录占用空间大小。 Android4.2的应用大小统计加入了目录占用...
  • Android4.2系统应用缓存12KB残留(二)

    千次阅读 2013-05-10 10:50:51
    Android4.2系统应用缓存12KB残留(一) Android4.2系统应用缓存12KB残留(二) 基础概念: 目前主流的Linux,一个目录占用的空间为4096字节。 (注:认为Linux目录不占空间的同学,请自行百度) ...
  • Android 获取应用缓存大小与清除缓存

    千次阅读 2016-07-26 16:55:11
    /** * 文 件 名: FileCacheUtils.java * 描 述: 主要功能有清除内/外缓存,清除数据库,清除sharedPreference,清除files和清除自定义目录 * */ import java.io.File; import java.math.BigDecima
  • Android——实现清除应用缓存功能

    千次阅读 2019-06-14 10:34:57
    import android.content.Context; import android.os.Environment; import java.io.File; import java.math.BigDecimal;... * 获取缓存大小并清理缓存 */ public class DataCleanManagerUtils { /** * Cont...
  • 最近公司有对安装好的应用的数据要求进行清理数据缓存需求,也就查找相关资料实现了,清除自身的缓存简单,但是要是想清除其他第三方应用这个就要消耗点精力了,因为android将clearApplicationUserData该接口给隐藏...
  • 安卓开发如何清理应用缓存和数据

    千次阅读 2016-05-13 16:50:50
    首先我们知道我们安装的程序在手机的data/data/应用包名 下面缓存信息存储在此路径的cache文件夹下 想要获取手机缓存文件大小,以前可以直接通过PackageManager的getPackageSizeInfo直接获取,现在这个方法已经被...
  • 大部分用户,通过链接进入我们的应用,一般都不会去手动刷新一下我们的应用(右上角三个点,然后点击刷新), 这样就会导致我们对程序版本迭代和内容更新的时候,总有一些手机用户因为缓存原因,内容无法及时的更新...
  • 个别情况下会出现更换war包、删除缓存、重启服务后程序加载仍为旧文件,此情况下应彻底删除应用程序全部相关内容(rm cache/* data/* tmp/* -rf),并执行更新应用重新启动服务( 注意: security 目录下为安全认证...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,097,333
精华内容 438,933
关键字:

应用缓存