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

以下是代码:

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();

}

}

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

android缓存清理代码,安卓缓存清除和计算相关推荐

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

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

  2. Android 一键清理内存,缓存,文件代码

    一键清理工具类:主要清理 1.系统的内存 2.App的缓存 3.系统的临时文件 .apk .log .tmp .temp .back package com.hitv.process;import j ...

  3. android 卸载残留代码,安卓手机怎么彻底清除卸载残留文件夹?如何彻底删除安卓手机上的残留软件[多图]...

    小伙伴们在清理手机垃圾的时候会出现卸载的软件还留有没用的文件夹,但也不知道哪个文件是否能删除.是否有用,不知道哪些是没用的垃圾,并且还会占用很多的内存.接下来就由果粉客为大家详细介绍下安卓手机彻底清除 ...

  4. android机清理存储卡,安卓手机内存卡清理 让你的手机更“轻松”【图文教程】...

    手机插上内存卡之后,才能够更好地应用手机.当我们使用一段时间之后,手机的内存卡就可能会产生大量的垃圾.因为内存不足,我们的手机可能会出现以下几种状况:第一,手机无法正常拍照;第二,手机无法存储短信;第 ...

  5. Android返回桌面代码,安卓 双击返回键 返回桌面

    早就有了双击返回键退出程序的需求,现如今或许有些需求是要返回桌面,而不是退出程序,那么改一些就能实现功能: (function($){ var old_back = $.back; var backB ...

  6. android+内存清理+代码,最新版本:Android一键式清理,内存清理功能的实现

    Android一键式清理,内存清理功能的实山清理大师等均提供一键式清理和一键加速等功能.实际上,它们杀死了一些后台进程以达到释放内存的目的. 基本思想是列出所有正在运行的进程,检查它们的重要值(Run ...

  7. android 数据回传代码,安卓向.net core api传输图片,执行保存到数据库命令后返回400错误代码,用postman测试没有问题安卓程序不行...

    安卓向.net core api传输图片,执行保存到数据库命令后返回400错误代码,用postman测试没有问题安卓程序不行,其他api没有问题,在执行保存到数据库命令之前也没有问题.希望各位大佬可以 ...

  8. java dns缓存清理_JVM DNS缓存问题

    在主机名解析为 IP 地址后,资源 IP 地址将保存在 JVM 的高速缓存中.如果改变了资源的 IP 地址,则需要重新启动应用服务器,使 Identity Manager 能够检测所做更改 (ID-3 ...

  9. html缓存效果代码,html5缓存(示例代码)

    HTML5 提供了两种在client存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 这些都是由 coo ...

  10. Android开发实战《手机安全卫士》——13.“缓存清理”模块实现

    文章目录 1.缓存清理--获取缓存过程 2.缓存清理--获取有缓存的应用 & 添加到线性布局 3.缓存清理--获取缓存界面进度条更新 4.缓存清理--清理缓存功能 5.缓存清理--单个应用缓存 ...

最新文章

  1. android圆角ImageView的几种实现方式
  2. ASP.Net中MD5和SHA1加密的几种方法
  3. MFC文件操作大全,打开,保存,复制,删除,查找等
  4. Netty使用protobuf进行消息编解码代码示例
  5. 《大型网站技术架构》读书笔记二:大型网站架构模式
  6. C++ 自定义调试信息的输出
  7. 批量关停azure vm_如何从Azure VM数据库运行本地SQL报表
  8. win10推荐的锁屏壁纸该怎么保存 win10休眠锁屏壁纸保存
  9. 二、oracle sql*plus常用命令
  10. cmk聪明客机器人餐厅_住了10年的老房大改造,45客餐厅全开放,更有整面大衣柜,高级又实用!...
  11. VLAN介绍、工作原理以及配置
  12. Metro风格用户界面设计原则
  13. PYTHON处理年月日的英文转换
  14. HTML5实现点击触发灯泡开关
  15. 微信小程序 获取当前日期时间
  16. 这几种常见的伪学习,看下你是不是也中招了?
  17. Vue 实现 Hover 功能( mouseover 与 mouseenter 的区别)
  18. PHP对接支付宝当面付详细教程
  19. 网络知识入门,数字信号如何转换为电信号(七)
  20. 我如何在1年内转行成了一名软件工程师

热门文章

  1. Android USB串口摄像头实现拍照与识别二维码
  2. 布尔表达式可满足性问题(SAT)与库克-列文定理(下)
  3. 【算法应用】Thompson Sampling--汤普森采样应用之代码篇 (Python)
  4. Kenneth Lane Thompson
  5. MATLAB 中ans变量详细介绍
  6. 数据库和SpringBoot
  7. 如何VS Code打造成Java开发IDE?
  8. 极智资讯 | 一文看尽今年的云栖大会 有哪些好玩的
  9. CSS之display用法
  10. qt:cannot open C:\Users\某某某\AppData\Local\Temp\main.obj.15576.16.jom for write