清理应用缓存:

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;后一个方法可以使用

Android 清理应用缓存相关推荐

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

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

  2. android pad 清除缓存,ipad清理缓存经验介绍

    ipad清理缓存经验介绍 导语:ipad清理缓存经验介绍?快速清除缓存(Quick App Manager)Quick App Clean Cache 能够列出手机中所有 Android 软件的缓存, ...

  3. android 清理缓存动画,android 清理缓存

    备忘:清理软件缓存功能的代码 个人测试了第二种方法,是有效果的 清理软件缓存 一种带root权限的:Class c1 = Class.forName("android.content.pm. ...

  4. Android 清理缓存、优化内存空间

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

  5. Android4清理代码缓存,Android清除应用缓存的两种方法

    第一种 使用ActivityManager中的clearApplicationUserData方法,代码如下: ActivityManager am = (ActivityManager) getSy ...

  6. android缓存清理无效,Android开发之清理系统缓存错误

    最近在做清理系统缓存功能时,用到以下方法PackageManager pm = context.getPackageManager(); Method localMethod = pm.getClas ...

  7. android glide 清除缓存,安卓内存清理之Glide

    项目中使用了glide加载图片 设置中要求能够清理用户缓存 计算缓存大小: new GetDiskCacheSizeTask().execute(new File(context.getCacheDi ...

  8. android 应用图标缓存清理,垃圾缓存清理大师

    垃圾缓存清理大师是一款非常不错的全能型垃圾清理软件,不管是应用缓存还是聊天产生的图片.语音.视频等等,app都能准确快速的扫码出来,然后一键轻松清除:为你的手机优化内存释放空间,用起来再也不卡了! 应 ...

  9. Android之图片缓存管理

    如果每次加载同一张图片都要从网络获取,那代价实在太大了.所以同一张图片只要从网络获取一次就够了,然后在本地缓存起来,之后加载同一张图片时就从缓存中加载就可以了.从内存缓存读取图片是最快的,但是因为内存 ...

  10. android清理存储工具,(安卓)CCleaner Pro — 手机垃圾文件清理工具

    本文最后更新于2020-08-06 00:28:08,某些文章具有时效性,若有错误或已失效,请在下方留言或联系老夜. CCleaner在PC端是一款非常优秀的清理工具,可以对应用程序.网络缓存.浏览历 ...

最新文章

  1. mesos安装,webui显示不正常
  2. 梭子鱼任命James Forbes-May为亚太区销售副总裁
  3. 网传B站数据中心起火?所谓“现场图片”却是盗来的
  4. 如何系统地理解「交易平台」?
  5. Centos7 网络配置
  6. JeeWx捷微3.0多触点版本发布,支持微信公众号,微信企业号,支付窗——喜迎双“旦”
  7. java html类_java HTML
  8. 豆瓣评分8.0以上数据分析R、MySQL、Python等书籍,45本包邮送到家
  9. ICCV2021 | 简单有效的长尾视觉识别新方案:蒸馏自监督(SSD)
  10. pdf文档有时打开乱码的解决方案
  11. 【C语言】简单小游戏项目:《别踩白块儿》
  12. python blp模型 估计_BLP模型
  13. 善领声音编辑器,修改search.dat完美启动静音
  14. linux比较两个文件的不同
  15. 生成权重 transorflow:Early stoppting conditioned on metric `val_accuracy` which is not available
  16. 2022保研,我的心路历程(上科大上海交大华南理工)
  17. Excel学习笔记:P27-我的表格有重复内容该怎么办?简单三招让它们现出原形
  18. 如何设计登录注册模块
  19. 区块链系统开发介绍模块
  20. iphone绕ID激活并完美重启

热门文章

  1. spec开发思路以及理解
  2. vscode环境搭建:配置prettier
  3. java ffmpeg 视频水印_java 实现视频转换通用工具类:视频加水印-Ffmpeg(五-1)
  4. DAOS 源码解析之 daos_api
  5. C语言实现入门级小游戏——三子棋
  6. java 消息提醒_JAVA怎么样实现即时消息提醒
  7. 广义表的概念及其存储结构
  8. worldpress小工具自定义html,WorldPress Grid html代码设置浅析,代码非常简洁
  9. 作为兼并重组的重要方式之一,企业合并、分立的具体形式?
  10. ch340g电路图5v和3.3v供电电路