cache clean 方面的总结
来源:互联网 发布:mysql concat 加换行 编辑:程序博客网 时间:2024/06/05 17:01
1.扫描手机app占用的cache
先要通过packageManager获取到所有手机上已安装的全部app
算出每个app的cache: 通过app的包名在PackageStub勒种通过反射方法获取到cacheSize
2.清理cache
分为直接清理cache (6.0之下, 6.0对应的是Android23)
使用accessibility权限进行清理cache
直接清理主要思想还是用反射的方法,用反射的方法获取到 PackageManager的
freeStorageAndNotify方法
方法参数中的cache值要大学需清理的cache,否则如果判断真实的cache比参数值大的话,就不会清理,所以反射方法中的值尽量给个大值,即可清理了所有app包的cache数据
这里如果无法确定最大值需要设多大 可以从小的开始进行判断,如果没符合要求,在继续往下走
这就是直接清理
为了防止清理未彻底 可以在Android/data目录下找app的cache文件,将cache文件删除即可
2. 使用accessbility进行清理
1.判断本应用是否有accessibility权限,(可通过Settings.Secure.getInt() 方法判断,参数为Settings.Secure.ACCESSIBILITY_ENABLED)
如果有accessibility权限,则开始进行清理:
通过Intent 打开setting 页,action_application_Details_settings
通过uri指向包名为我们将要清理cache的包名,即可打开应用设置页中对应的应用
这时候就可以进行清理,主要是借助accessibility的回调,获取到设置页中所有的元素,在这些元素中通过id或者显示字符串,找出清理cache的按钮,(因为Android rom可以自定义,所以使用id获取的按钮不准确,所以我们用字符创进行按钮的获取)
需要继承
AccessibilityService
继承onAccessibilityEvent 方法 ,参数event,event.getsouce我们可以获取到AccessibityNodeInfo,也及时每个节点的信息,通过节点的信息找到清理缓存的节点。
对node进行模拟点击从操作,node.performAction(AccessibilityNodeInfo,ACTION_CLICK) 点击后即可完成app的清理缓存操作
知识点:
反射:
主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义
通过反射可以访问对象的属性,方法,构造方法等。
反射方法获取类有三种方式
1. = Class.forName(“类名”)
2 = 类名.class
3.= 对象.getClass()
获取类之后创建对象
c.newInstance () 调用类的默认构造函数
获取类中所有的成员变量
c.getDeclaredFields(); 返回Field[]
每个field 都可以通过获取访问权限,成员变量的类型,成员变量的名称
也可通过变量名获取某一个成员变量 : c.getDeclaredField("变量名");
获取的变量.setAccessible(true) 可以打破封装,使此变量不安全
获取的变量.set(类的对象, "110"); //set 可以设置对象中不安全变量的值
2.accessibility的简介
google开放出来主要是为了方便残疾人使用,通过获取accessibility 可以在安卓系统中随意打开页面也可以进行按钮点击,
但是好多人用来进行灰色操作,比如自动安装软件,自动清理cache 等,抢红包等。
accessibility实现只需三部分:
1.继承 accessibityservice
2.在 onAccessibilityEvent 可以接受到监听页面的事件,通过事件可以获取本页面所有的nodeInfo
3.在Menifest中注册
- cache clean 方面的总结
- 一篇cache方面的文章
- Nginx Cache方面的设置
- Nginx Cache方面的设置
- Linux方面的总结
- 关于C++方面的总结
- 局域网方面的问题总结
- 软件测试方面的总结
- Unity 优化方面的总结
- 总结下 数据库方面 的一些知识(Oracle方面)
- 关于Cache的一些总结
- Cache' 日期型的总结
- Cache计算的再总结
- Clean Code学习总结
- Clean Code 阅读总结
- magento缓存系列详解:clean cache
- magento缓存系列详解:clean cache
- magento缓存系列详解:clean cache
- javascript 学习笔记(一):回调函数实例
- Application
- pcm混音
- in、exists、not in、not exists
- Android开发学习之四大组件之一 --- ContentProvider
- cache clean 方面的总结
- table td 内容太长自动换行的实例(word-wrap和word-break的差异)
- 衡量算法的标准
- hive基础操作
- HDU-2222 Keywords Search (AC自动机入门题)
- systemd——定义
- 建造者模式
- 字符串格式的xml转json格式
- PAT-A 1007. Maximum Subsequence Sum (25)