清除数据和清除缓存的区别

反射调用系统隐藏接口,需要准备的东西:

一、在AndroidManifest.xml中的manifest标签下添加声明

android:sharedUserId="android.uid.system"

二、添加如下权限

三、使用系统签名给app进行签名

找到platform.pk8和platform.x509.pem和apksigner.jar三个文件,网上搜索制作系统签名文件的命令

最终生成plateform.keystore签名文件(附上某网盘制作好的系统签名,链接: https://pan.baidu.com/s/11dir8rTC_GxSGuG5El0nMg 提取码: ed33 )

四、创建 android.content.pm.IPackageDataObserver的aidl接口

// IPackageDataObserver.aidl

package android.content.pm;

interface IPackageDataObserver {

void onRemoveCompleted(in String packageName, boolean succeeded);

}

五、实现aidl接口回调监听

经过验证总结,得出如下结论:

1、清除缓存:

反射调用接口:PackageManager.deleteApplicationCacheFiles

它会清除以下项目:

A)清除data/data/{package_name}/cache/下的所有文件

B)清除data/data/{package_name}/code_cache/下的所有文件

C)清除mnt/sdcard/Android/data/{package_name}/下的cache文件夹

2、清除数据:

反射调用接口:ActivityManager.clearApplicationUserData

它会清除以下项目:

A)清除data/data/{package_name}/下的所有文件和文件夹(包括lib文件夹,PS:网上有人说lib文件夹和里面的内容不会被清除,经过验证,实际上也会清除)

B)清除mnt/sdcard/Android/data/下当前包名的文件夹

C)清除mnt/sdcard/Android/media/下当前包名的文件夹

D)清除{package_name}对应的app所有运行时权限的授权

E)清除所有通知,和该应用相关的所有URI授权(此项目为接口描述内容,未实际验证)

#但不会清除mnt/sdcard/Android/obb/{package_name}/下的内容

3、清除所有:

反射调用接口:PackageManager.freeStorageAndNotify

回调清除失败,不能清除任何数据。

附:

/mnt/sdcard/ =/storage/emulated/0/

/data/data/ = /data/user/0/

接口返回的目录具体地址:

getCacheDir=/data/user/0/{package_name}/cache

getFilesDir=/data/user/0/{package_name}/files

getDataDir=/data/user/0/{package_name}

getCodeCacheDir=/data/user/0/{package_name}/code_cache

getDir(“abcd”)=/data/user/0/{package_name}/app_abcd

getObbDir=/storage/emulated/0/Android/obb/{package_name}

getExternalCacheDir=/storage/emulated/0/Android/data/{package_name}/cache

getExternalFilesDir(“acbd”)=/storage/emulated/0/Android/data/{package_name}/files/abcd

getExternalMediaDirs[0]=/storage/emulated/0/Android/media/{package_name}

android清除缓存有哪些,Android中的清除数据和清除缓存有什么区别,它们分别清除了哪些文件...相关推荐

  1. 无盘服务器读写缓存,无盘系统中实现网络磁盘本地写缓存控制的方法

    1. 一种无盘系统中实现网络磁盘本地写缓存控制的方法,所述的无盘系统中包括通过 网络与远程服务器相连接的客户端,其特征在于,所述的方法包括以下步骤:(1)客户端进行启动和初始化操作:(2)客户端根据服 ...

  2. powerha_在IBM PowerHA集群环境中实现存储数据的服务器端缓存

    本文介绍了如何将IBMPowerHA®集群配置为使用定制的应用程序脚本为应用程序提供高可用性(HA)时,如何在IBM®AIX®操作系统上启用服务器端存储数据缓存 . AIX提供AIX 7.1 TL4 ...

  3. Redis缓存(三)缓存异常的四个方面:数据同步、缓存雪崩、击穿、穿透

    先放总结图: 异常一:缓存与数据库数据要保持实时一致性 如果Redis为只读模式,更新数据时直接更新MySQL里的数据,同时删除Redis里的旧数据: 如果Redis为读写模式,更新数据时Redis和 ...

  4. java缓存同步_浅谈JSON的数据交换、缓存问题和同步问题

    JSON轻量级的数据交换格式 相对于XML来说,JSON的解析速度更快,文档更小. JSON的格式 {属性名:属性值,属性名:属性值,--} 属性名的类型可以是string,number,boolea ...

  5. tp5 mysql缓存_tp5.0 SHOW COLUMNS FROM 生成数据表字段缓存

    TP5.0 生成数据表字段缓存 =控制台执行以下命令= 1.生成指定数据库的所有表字段缓存 php think optimize:schema --db databaseName 2.生成指定数据表的 ...

  6. uni-app app清除app缓存,使用一段时间app数据图片等缓存清理,记录一下

    uni-app  app清除本地的缓存,app使用一段时间缓存数据导致app卡顿,清理缓存 记录一下操作 设置里面有清理缓存按钮,点击按钮清除缓存 export default {components ...

  7. android 桥接,路由器一键桥接Android实现

    開始之前,首先说一下什么叫一键桥接,所谓一键桥接,就是点击一下.就能够对所连接的路由器进行网络中继设置.以实现路由器能够通过已有的无线路由器进行网络訪问. 那么实现这个功能有几种方法呢?能够说有非常多 ...

  8. guava 缓存查询_阿里Java二面难点:Redis缓存穿透、击穿、缓存雪崩方案

    一.缓存穿透 1. 什么是缓存穿透? 为了缓解持久层数据库的压力,在服务器和存储层之间添加了一层缓存: 一个简单的正常请求:当客户端发起请求时,服务器响应处理,会先从redis缓存层查询客户端需要的请 ...

  9. web页面上数据是否进行缓存要怎么判断_前端要知道的网络知识五:详细的介绍web缓存...

    Web缓存是可以自动保存常见文档副本的HTTP设备.当Web请求抵达缓存时,如果本地有"已缓存的"副本,就可以从本地存储设备而不是原始服务器中提取这个文档.本文将详细介绍缓存的相关 ...

  10. Flink应如何处理窗口中迟到的数据?

    一.如何处理迟到的数据 三个步骤: .1 设置水位线延迟时间 因为水位线的延迟主要是用来对付分布式网络传输导致的数据乱序,而网络传输的乱序程度一般并不会很大,大多集中在几毫秒至几百毫秒.所以实际应用中 ...

最新文章

  1. MacOS 安装monkey教程
  2. 物联网平台存量设备如何一键迁移企业版实例
  3. 什么是CRM中间件的1250事件
  4. Bootloader及u-boot简介/u-boot系统启动流程
  5. 【转】UML基础: 第1部分 - 类图 (Class Diagram)
  6. 2017.10.9 找相同字符 失败总结
  7. 预训练模型的技术演进:乘风破浪的PTM
  8. [WebView五学习]:调试Web Apps
  9. 文本分类之一:语言模型
  10. 少儿编程app排名_终于明白少儿编程软件哪个好
  11. json react 展示工具_如何基于jsoneditor二次封装一个可实时预览的json编辑器组件?(react版)...
  12. Adams 2020 安装教程
  13. 【有利可图网】多图如何排版?分享几个方案
  14. HTML5 游戏开发快速提升
  15. 33.Redis详解
  16. MySQL8.0.17 - Multi-Valued Indexes 简述
  17. 【全栈软件测试】一、测试环境和操作系统(3)VMware的安装及使用与虚拟机的创建与使用详细介绍
  18. Electron flash插件
  19. The road you are trudging is bound for loneliness.(前行的道路注定孤独)
  20. mysql靶场_BWVS靶场搭建

热门文章

  1. 适合MacBook Pro 2021玩的游戏推荐
  2. 记录第一次用git上传代码到gitee
  3. 2.编写一元二次方程(ax2+bx+c=0)求根的程序: 输入3个系数(double型),输出:如果有2个实数根,那么输出2个实数根的值,如果只有一个根,那么输出这个根的值,如果没有实数根,那么输出一
  4. combotree 禁止选中某一项
  5. 用于HTML5移动开发的几大移动APP开发框架
  6. 1.6 LaTex参考文献
  7. 技术和学历哪个更重要,用人单位更看重什么?
  8. geoserver2.18(8):添加CSW(网络目录服务)扩展及前端开发调用
  9. Python量化交易入门
  10. iotop和iostat