当前位置: 首页 > news >正文

android 清除缓存方法

获得应用的存储信息

private void getAppStorageInfo(String packageName){StorageStatsManager storageStatsManager = (StorageStatsManager) context.getSystemService(Context.STORAGE_STATS_SERVICE);StorageManager storageManager = (StorageManager) context.getSystemService(Context.STORAGE_SERVICE);List<StorageVolume> storageVolumes = storageManager.getStorageVolumes(); //app可能安装在外部存储上面,外部存储有一个唯一的UUID做区分UserHandle user = android.os.Process.myUserHandle();Log.d("zwt", ":::"+storageVolumes.size());try {for (StorageVolume storageVolume : storageVolumes) {final String uuidStr = storageVolume.getUuid();Log.d("zwt", "uuidStr:::"+uuidStr);final UUID uuid = uuidStr == null ? StorageManager.UUID_DEFAULT : UUID.fromString(uuidStr);StorageStats storageStats = storageStatsManager.queryStatsForPackage(uuid, packageName, user);//应用程序的大小。这包括 APK 文件、优化的编译器输出和解压的原生库long appBytes = storageStats.getAppBytes();//应用程序缓存数据的大小。这包括存储在 Context.getCacheDir() 和 Context.getCodeCacheDir() 下的文件long cacheBytes = storageStats.getCacheBytes();//应用程序所有数据的大小。这包括存储在 Context.getDataDir()、Context.getCacheDir()、Context.getCodeCacheDir() 下的文件long dataBytes = storageStats.getDataBytes();//主外部共享存储中所有缓存数据的大小。这包括存储在 Context.getExternalCacheDir() 下的文件long externalCacheBytes = storageStats.getExternalCacheBytes();                }}catch (PackageManager.NameNotFoundException | IOException e) {e.printStackTrace();}return ;}

需要声明权限

 <!-- 获得app缓存大小 --><uses-permissionandroid:name="android.permission.PACKAGE_USAGE_STATS"tools:ignore="ProtectedPermissions" />

清除应用数据缓存

在公版设置中的位置
清除数据:\packages\apps\Settings\src\com\android\tv\settings\device\apps\ClearDataPreference.java
清除缓存:\packages\apps\Settings\src\com\android\tv\settings\device\apps\ClearCachePreference.java
在这里插入图片描述
位置:\packages\apps\\Settings\src\com\android\tv\settings\device\apps\AppManagementFragment.java
在这里插入图片描述在这里插入图片描述
主要调用方法,这两个方法都是不能被第三方应用调用的方法,必须是系统级的应用,且有系统的签名,第三方只能用反射的方法调用

am.clearApplicationUserData(packageName, new ClearUserDataObserver());
pm.deleteApplicationCacheFiles(packageName, new ClearUserDataObserver());

在这里插入图片描述
在这里插入图片描述
这两个方法要传入一个aidl服务,来回调通知数据是否清除成功

1.导入aidl

位置: frameworks/base/core/java/android/content/pm/IPackageDataObserver.aidl
将此aidl文件复制到项目aidl文件夹下,注意包名保持一致
aidl说明:https://blog.csdn.net/weixin_44128558/article/details/112154294
在这里插入图片描述

2.实现

	// 清除缓存public void clearCache(String packageName){if (context!=null){PackageManager pm = context.getPackageManager();pm.deleteApplicationCacheFiles(packageName, new ClearUserDataObserver());}else {Log.d(TAG, "clearCache() context is null");}}// 清除数据public void clearData(String packageName){if (context!=null){ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);boolean success = am.clearApplicationUserData(packageName, new ClearUserDataObserver());}else {Log.d(TAG, "clearData() context is null");}}//清除回调static class ClearUserDataObserver extends IPackageDataObserver.Stub {private final String TAG = "zwt:ClearUserDataObserver";@Overridepublic void onRemoveCompleted(String packageName, boolean succeeded) throws RemoteException {if (succeeded){Log.d(TAG, "清理成功");}else {Log.d(TAG, "清理失败");}}}// 卸载apkpublic void deleteApk(String packageName) {if (context == null){return ;}Uri uri = Uri.fromParts("package", packageName, null);Intent intent = new Intent(Intent.ACTION_DELETE, uri);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(intent);}

轻松搞定

相关文章:

android 清除缓存方法

获得应用的存储信息 private void getAppStorageInfo(String packageName){StorageStatsManager storageStatsManager (StorageStatsManager) context.getSystemService(Context.STORAGE_STATS_SERVICE);StorageManager storageManager (StorageManager) context.getSystemS…...

介绍下你们项目中各微服务之间怎么调用的?

各微服务模块之间的数据交互主要通过一些常见的通信机制进行。以下是几种常见的数据交互方式&#xff1a; RESTful API&#xff1a;REST&#xff08;Representational State Transfer&#xff09;是一种基于HTTP协议的通信机制&#xff0c;它使用标准的HTTP方法&#xff08;如…...

MySql提示:The Server Quit Without Updating PID File(…)失败 103.36.167

01问题 可能是 /usr/local/mysql/data/rekfan.pid 文件没有写的权限 。 解决办法 给予权限&#xff0c;执行 1. # chown -R mysql:mysql /var/data 2. #chmod -R 755 / usr/local/mysql/data 然后重新启动mysqld。 43.242.205 02问题 可能进程里已经存在…...

FPGA学习——按键消抖的两种实现方法

文章目录 一、按键消抖简介1.1、为什么要按键消抖 二、C4开发板原理图三、按键消抖源码3.1、方案一&#xff08;每当检测到下降沿便开始重新计数&#xff09;3.2、方案二&#xff08;检测到第一次下降沿后便开始计数&#xff09; 四、仿真代码及仿真波形图五、拓展&#xff1a;…...

SecureCRT如何将复制的内容粘贴到word中仍然保持原有字体颜色

SecureCRT如何将复制的内容粘贴到word中仍然保持原有字体颜色 QQ 109792317 说明&#xff1a;当SecureCRT加载了配色文件后&#xff0c;输出的关键字会被不同颜色高亮显示&#xff0c;但是如果复制粘贴到word中会发现成了纯文本&#xff0c;字体颜色消失了。 如何保留 &#x…...

微信小程序分享页面代码

在微信小程序中实现分享功能需要以下几个步骤&#xff1a; 1. 在app.json文件中配置分享参数&#xff0c;例如标题、路径等。示例如下&#xff1a; json { "pages": [ "pages/index/index" ], "window": { "navigationBarTit…...

Hadoop 之 Hbase 配置与使用(四)

Hadoop 之 Hbase 配置与使用 一.Hbase 下载1.Hbase 下载 二.Hbase 配置1.单机部署2.伪集群部署&#xff08;基于单机配置&#xff09;3.集群部署1.启动 hadoop 集群2.启动 zookeeper 集群3.启动 hbase 集群4.集群启停脚本 三.测试1.Pom 配置2.Yml 配置3.Hbase 配置类4.Hbase 连…...

使用TensorFlow和VGG-19模型实现艺术风格迁移:一步一步打造你的数字艺术世界

在当下的AI领域,神经风格迁移是最富有创新性和艺术性的技术之一。这项技术可以将一种图像的风格迁移至另一种图像,创造出让人眼前一亮的视觉效果。这种转变所展现的技术之美,让我们深感人工智能所带来的可能性。本文将带领大家一步步通过TensorFlow和VGG-19模型实现风格迁移…...

FBX/GLTF在线转换

3Dconvert是一个可以进行3D模型格式转换的在线工具&#xff0c;并支持3D模型在线预览和转换成果下载。网站访问地址&#xff1a;3D模型在线转换。 1、上传3D模型文件 3D模型在线转换工具的使用非常便捷&#xff0c;首先在网站首页选择需要转换的目标格式&#xff0c;网站支持…...

Tensorflow(二)

一、过拟合 过拟合现象:机器对于数据的学习过于自负(想要将误差减到最小)。 解决方法:利用正规化方法 二、卷积神经网络(CNN) 卷积神经网络是近些年来逐渐兴起的人工神经网络&#xff0c;主要用于图像分类、计算机视觉等。 卷积:例如对图片每一小块像素区域的处理&#xff…...

NoSQL之 Redis 部署,配置与优化

文章目录 NoSQL之 Redis配置与优化一.关系数据库与非关系型数据库1.关系型数据库2.非关系型数据库3.关系型数据库和非关系型数据库区别4.非关系型数据库产生背景 二.Redis简介1.了解Redis2.Redis 具有以下几个优点3.Redis为何这么快 三.Redis 安装及应用1.Redis 安装部署2.Redi…...

汽车行业 Y 公司对接斯堪尼亚 SCANIA EDI 项目案例

斯堪尼亚是一家来自瑞典的重型车辆制造公司&#xff0c;成立于1891年&#xff0c;总部位于斯德哥尔摩&#xff0c;主要专注于生产卡车、客车和工业发动机&#xff0c;以及相应的服务与解决方案。斯堪尼亚的产品以其高品质、可靠性和先进技术而闻名。其卡车广泛应用于货运和运输…...

mysql到doris踩坑记录(如果有问题希望大家帮忙指出问题)

1安装mysql(该步骤晚上很多&#xff0c;不做记录) 2安装docker(同上) 3安装并部署doris(下载镜像步骤省略) sudo docker run -p 9030:9030 -p 8030:8030 -p 8040:8040 \-itd starrocks.docker.scarf.sh/starrocks/allin1-ubuntu 官网地址从 Apache Flink 持续导入 Flink-c…...

苹果11手机设置手机跟踪功能

苹果11手机设置手机跟踪功能&#xff0c;就算是手机丢了&#xff0c;也能通过查询手机定位在哪里。 第一步&#xff1a;点击Apple ID进入详情 第二步&#xff1a;点击“查找” 第三步&#xff1a; 第四步&#xff1a; 到了这步&#xff0c;就算是设置成功。 下面需要到官方查询…...

下拉框可筛选可树状多选组件

实际效果图片 父页面 <el-form-item label"转发&#xff1a;" :label-width"formLabelWidth" class"formflex_item"><el-select ref"select" :clearable"true" clear"clearSelect" remove-tag"r…...

【LeetCode】70.爬楼梯

题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;2 解释&#xff1a;有两种方法可以爬到楼顶。 1. 1 阶 1 阶 2. 2 阶 示例 2…...

c#中的Math.Ceiling和Math.floor()和Math.Round()

Math.Ceiling(),只要有小数就加1(小数部分不为0&#xff09; 例如&#xff1a; Math.Ceiling(0.0) -> 0 Math.Ceiling(0.1) -> 1 Math.Ceiling(0.2) -> 1 Math.Ceiling(0.3) -> 1 Math.Ceiling(0.4) -> 1 Math.Ceiling(0.5) -> 1 Math.Ceiling(0.6) -> 1…...

C++day7(异常处理机制、Lambda表达式、类型转换、STL标准库模板、迭代器、list)

#include <iostream>using namespace std; template <typename T> class vector { private:T* first;T* last;T* end; public:vector():first(new T),last(first),end(first){cout<<"无参构造"<<endl;}//无参构造vector(T* f):first(f),last…...

性能优化问题

提升首屏的加载速度&#xff0c;是前端性能优化中「最重要」的环节&#xff0c;这里笔者梳理出一些 常规且有效 的首屏优化建议 1、路由懒加载 SPA 项目&#xff0c;一个路由对应一个页面&#xff0c;如果不做处理&#xff0c;项目打包后&#xff0c;会把所有页面打包成一个文…...

【云原生系列】云计算概念与架构设计介绍

1 什么是云计算 云计算是一种基于互联网的计算模式&#xff0c;在这个模式下&#xff0c;各种计算资源&#xff08;例如计算机、存储设备、网络设备、应用程序等&#xff09;可以通过互联网实现共享和交付。云计算架构设计的主要目标是实现高效、可扩展、可靠、安全和经济的计算…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机&#xff0c;点进去 点进去 查看URL&#xff0c;有 ?fileflag.php说明存在文件包含&#xff0c;原理是php://filter 协议 当它与包含函数结合时&#xff0c;php://filter流会被当作php文件执行。 用php://filter加编码&#xff0c;能让PHP把文件内容…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准

城市路内停车管理常因行道树遮挡、高位设备盲区等问题&#xff0c;导致车牌识别率低、逃费率高&#xff0c;传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法&#xff0c;正成为破局关键。该设备安装于车位侧方0.5-0.7米高度&#xff0c;直接规避树枝遮…...