android 清楚app缓存数据,android 获取其他应用程序的缓存大小以及清理应用缓存...-程序员宅基地

技术标签: android 清楚app缓存数据  

最近在做appStore时,涉及到一个第三方app下载视频后将车机存储撑爆的问题,从而影响到我们车机自带的app使用,问题很是严重,于是就需要提供缓存清理以及垃圾清理的功能,当用户使用第三方app时,存储空间达到一定量的时候会提示用户去清理,否则不允许使用第三方app。

缓存获取

获取各个应用程序的缓存大小,可以通过使用PackageManager.getPackageSizeInfo方法来获取,但是它被隐藏了,所以我们只能通过反射来调用该方法

2ecfd4a1e436f5dd43ece069423f9777.png

一、首先我们需要获取到系统中所有已安装app的基本信息

ListinstalledPackages = mPackageManager.getInstalledPackages(0);

for (PackageInfo packageInfo : installedPackages) {

getCacheSize(packageInfo);//反射调用getPackageSizeInfo

}

二、反射调用getPackageSizeInfo

/**

* 获取到缓存的大小

*

*@param packageInfo

*/

private void getCacheSize(PackageInfo packageInfo) {

try {

//通过反射获取到当前的方法

Method method = PackageManager.class.getDeclaredMethod("getPackageSizeInfo", String.class, IPackageStatsObserver.class);

/**

* 第一个参数表示当前的这个方法由谁调用的

* 第二个参数表示包名

*/

method.invoke(mPackageManager, packageInfo.applicationInfo.packageName, new My

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_36042403/article/details/117615646

智能推荐

Unity3D:延时方法Invoke和InvokeRepeating_unity3d invokerepeating-程序员宅基地

文章浏览阅读519次。转自:http://www.cnblogs.com/louissong/p/3832960.htmlMonoBehaviour里面有两个内置的延时方法Invoke123Invoke(methodName: string, time: float): void;methodName_unity3d invokerepeating

#拆分训练集和测试集 x_train, x_test, y_train, y_test = train_test_split 参数都是什么意思呢?_x_train, x_test, y_train, y_test = train_test_spli-程序员宅基地

文章浏览阅读1.5w次,点赞11次,收藏47次。#拆分训练集和测试集x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=42)完整模板:train_X,test_X,train_y,test_y = train_test_split(train_data,train_target,test_size=0.3,random_state=5)参数解释:train_data:待划分样本数据train_..._x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, ran

kali安装BeEF发动XSS攻击_change the beef.credentials.passwd in config.yaml -程序员宅基地

文章浏览阅读5.7k次,点赞2次,收藏18次。BeEF( The Browser Exploitation Framework) 是由Wade Alcorn 在2006年开始创建的,至今还在维护。是由ruby语言开发的专门针对浏览器攻击的框架。BeEF的总体思路就是在内网下通过arp欺骗,修改response包,加入我们的钩子。1. 安装root@kali:~# apt-get install beef-xss2.启动切换到Be..._change the beef.credentials.passwd in config.yaml 空的

高效java工具类总结-程序员宅基地

文章浏览阅读142次。一、org.apache.commons.lang.StringUtilsisBlank:字符串是否为空 (trim后判断)isEmpty:字符串是否为空 (不trim并判断)equals:字符串是否相等join:合并数组为单一字符串,可传分隔符split:分割字符串isNumericSpace:是否是number 可以去除字符串间的空格 前后的不可以EMPTY:返回空字符串is..._高效java工具类

关于一个CUE文件及多个分轨APE合并成CUE及APE文件的办法_多个cue合并-程序员宅基地

文章浏览阅读7.1k次。 有CUE文件,就比没有简单多了. 1. 用monkey把多个分轨APE文件解压缩成wav格式.2. 修改原cue文件内容,把对应的ape全改成wav3. 用虚拟光驱载入这个cue文件.4. 用EAC抓取此虚拟CD. 生成一个cue及一个ape总文件. _多个cue合并

Linux期末考试题库(超全)-程序员宅基地

文章浏览阅读8w次,点赞339次,收藏2.4k次。Linux期末考试题库选择题在创建Linux分区时,一定要创建( D )两个分区A. FAT/NTFS  B. FAT/SWAP  C. NTFS/SWAP  D.SWAP/根分区在Red Hat Linux 9 中,系统默认的(A)用户对整个系统拥有完全的控制权。A. root  B. guest  C. administrator  D.supervistor.当登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么( B )A. NID B. PID _linux期末考试题库

随便推点

编译程序依赖于 ffmpeg和x264 的链接顺序_静态链接 libx264.a-程序员宅基地

文章浏览阅读3.8k次。编译纯静态库文件1.编译x264静态库libx264.a2.编译ffmpeg的静态库libavcodec.a libavdevice.a libavfilter.a libavformat.a libavutil.a libpostproc.a libswresample.a libswscale.a 并enable x2643.编译自己的程序,链接库的顺序为 -lavc_静态链接 libx264.a

Java高级特性 - 多线程基础(1)使用线程_java高级特性 - 多线程基础(1)使用线程-程序员宅基地

文章浏览阅读1.8k次。第1关:创建线程任务描述 相关知识 什么是线程、什么是进程 如何创建线程 编程要求 测试说明任务描述本关任务:创建一个Java线程执行特定任务。相关知识不知道你有没有发现,截止目前,我们编写的代码都是在main()函数中依照编写代码的顺序从上到下依次运行的。但是我们平常使用的软件基本都是可以多个任务同时执行的,这其中的运行机制是什么呢?这一小节我们就来探讨。本小节我们来学习Java中程序是如何同时执行多个任务的。为了完成本关任务,你需要掌握:1.什么是线程、_java高级特性 - 多线程基础(1)使用线程

细说jquery ui和jqgrid的ASP.NET实现_repeatitems属性-程序员宅基地

文章浏览阅读6.2k次。2012-01-05 22:02 by keepfool, 4835 阅读, 37 评论, 收藏, 编辑前言 数据显示的方式可以通过很多控件来实现,例如服务端的原生GridView,第三方控件ComponentArt、Telerik等,客户端_repeatitems属性

mysql创建表时设置主键id为uuid_mysql创建某个表时给主键定义uuid-程序员宅基地

文章浏览阅读1.3w次,点赞7次,收藏26次。oracel创建uuid为主键的表时可以直接指定default uuid();但是mysql不支持,可以通过触发器实现。下面是创建一个产品表的sql语句。CREATE TABLE `product` ( `id` varchar(32) NOT NULL, `productNum` varchar(50) NOT NULL, `productName` varchar(50) DEF..._mysql创建某个表时给主键定义uuid

ENVI-met学习博客(一):df-envimet插件_envi-met教程 csdn-程序员宅基地

文章浏览阅读4k次,点赞6次,收藏14次。ENVI-met学习博客(一):df-envimet插件插件贡献者:安东内洛·迪·努齐奥(Antonello Di Nunzio)Antonello的githubdf-envimet插件介绍df-envimet(Dragonfly Envimet)代码将Ladybug,Dragonfly和Gismo连接到Envimet,以进行城市小气候分析。它可以创建Envimet 3D模型(INX),基本仿真文件,并读取建筑物和网格中几乎所有的结果。这个插件需要运行在Rhino和Grasshopper之上。它可_envi-met教程 csdn

2.4g无线芯片G350规格书详细介绍_2.4g无线通讯芯片-程序员宅基地

文章浏览阅读180次。G350是一款高度集成的2.4GHz无线收发芯片,旨在为各种应用提供低成本、高性能的无线通信解决方案。该芯片通过降低功耗,在保持寄存器值条件下,实现最低电流为5μA,从而显著提高了电池寿命。G350支持BLE广播收发,广泛用于BLE电子标签、无线遥控、无线键盘鼠标、无线组网、智能家居、工业和商用近距离通信等领域。总之,G350是一款性能优越、功耗低、功能丰富的2.4GHz无线收发芯片,适用于广泛的应用领域,为物联网和无线通信领域的设备提供了稳定、高效的无线通信能力。_2.4g无线通讯芯片

推荐文章

热门文章

相关标签