当前位置: 首页 > 知识库问答 >
问题:

在android 6.0上删除系统缓存

甄霖
2023-03-14

我使用方法freestorageandnotify(),权限android.permission.clear_app_cache删除所有已安装应用程序的系统缓存。但是该方法开始从android Marshmallow6.0版本抛出invocationtargetException。在谷歌搜索这些问题后,我发现了与这里报告的相同的问题:Android M反射方法freeStorageAndNotify异常,所以这里的结论是,freeStorageAndNotify()停止工作,因为google现在已经将该方法的签名级别提升到signatureSystem。

但现在的问题是,像“Clean Master”这样的其他第三方应用程序如何仍然能够通过获得用户对6.0设备的访问权限来删除所有已安装应用程序的系统缓存?

共有1个答案

姜嘉良
2023-03-14

我不认为“清理大师”实际上使用访问权限来清理已安装的应用程序缓存。但是,如果您感兴趣,可以通过在应用程序中使用AccessibilityService来实现这个目标。在扩展AccessibilityService的类中,有以下回调:

    @Override
    public void onAccessibilityEvent(AccessibilityEvent aEvent) {
       AccessibilityNodeInfo rootNode = aEvent.getSource();
       //...
    }

在这里,您可以调用rootnode.findAccessibilityNodeInfosbyViewID()rootnode.findAccessibilityNodeInfosbyText(),它将返回树中所有匹配的AccessibilityNodeInfo对象(子节点)。然后,您只需检测其中哪一个是按钮(node.getClassName()),并调用subnode.performAction(accessibilityNodeInfo.action_click)

在Android M上,您首先需要打开系统应用程序信息屏幕(您可以在这里找到如何以编程方式启动Android应用程序信息屏幕的说明?)对于具体的应用程序,按照上面描述的方案,执行顺序点击按钮“存储”->“清除缓存”。

 类似资料:
  • 清除系统缓存 初衷 本身 Linux 有比较成熟的内存管理机制,但是不免也是会抽风的,有些程序在被 kill 掉之后系统内存依然没有大的变化,这时候就需要手动清除。 清除缓存 官网说明:http://www.kernel.org/doc/Documentation/sysctl/vm.txt 先查看目前系统内存使用情况:free -m 同步缓存数据到硬盘:sync 开始清理:echo 3 > /p

  • sp_clear_cache() 功能: 清除缓存 参数: 无 返回: 无 <?php sp_clear_cache();//无返回值 ?>

  • 配置 Laravel 为各种后端缓存提供丰富而统一的 API,而其配置信息位于 config/cache.php 文件中,你可以指定默认的缓存驱动程序。Laravel 支持当前流行的后端缓存,例如 Memcached 和 Redis。 缓存配置文件还包含各种其他选项,这些选项都记录在文件中,因此请确保阅读这些选项。 默认情况下,Laravel 配置为使用 file 缓存驱动程序,它将序列化的缓存对

  • del 清空指定缓存 await this.app.redis.del('name') flushall 清空所有缓存 await this.app.redis.flushall() lpop 从数组最左边删除一项 await this.app.redis.lpop('userList') rpop 从数组最右边删除一项 await this.app.redis.rpop('userList')

  • 本文向大家介绍Linux系统清除缓存的方法总结,包括了Linux系统清除缓存的方法总结的使用技巧和注意事项,需要的朋友参考一下 1)缓存机制介绍 在Linux系统中,为了提高文件系统性能,内核利用一部分物理内存分配出缓冲区,用于缓存系统操作和数据文件,当内核收到读写的请求时,内核先去缓存区找是否有请求的数据,有就直接返回,如果没有则通过驱动程序直接操作磁盘。 缓存机制优点:减少系统调用次数,降低C

  • 问题内容: 我正在用C ++写一个基准测试工具,我想在两次实验之间清除文件系统内存缓存。我知道以下控制台命令: 我的问题是如何直接在C ++中以编程方式执行此操作? 任何帮助表示赞赏! 问题答案: 只需写: