相关文章推荐
好帅的遥控器  ·  关于Svelte开发WebComponent ...·  9 月前    · 
怕考试的木瓜  ·  前端js、jquery ...·  1 年前    · 
独立的小狗  ·  Access导出文本文件逗号分隔怎么弄-掘金·  1 年前    · 
玩命的火车  ·  HikariCP - 理解并正确使用配置 ...·  2 年前    · 
眉毛粗的大蒜  ·  Getting Started | ...·  2 年前    · 
Code  ›  安卓系统APP的数据和缓存有什么区别? - 天枢破军 的回答 -
软件 缓存服务器 浏览器缓存 缓存
https://www.zhihu.com/question/472919075/answer/2005135178
胡子拉碴的眼镜
1 年前
安卓系统APP的数据和缓存有什么区别?
天枢破军
天枢破军 ​
Android开发者,米粉(再买首发我是狗!)

根据截图我盲猜一手题主手机是三星。(虽然这个问题和手机品牌没什么关系,但我就是想皮一下)

要回答第一个问题,缓存和数据的区别,就得搞清楚他们的概念

什么是缓存

缓存是指在程序运行的时候临时存储到手机闪存里的数据,当再次需要这些数据的时候可以直接从手机里面取而不必从网络上重新下载一次。

常见的缓存有:图片缓存,视频缓存,音频缓存等

清除缓存会导致再次使用这些数据的时候不得不从网络上重新获取。

举个例子:你在网易云经常听自己的歌单,网易云会把这些歌的数据缓存到本地,当有一天你在信号很差的地方没有网络的时候照样可以播放缓存里的音乐,接着奏乐接着舞。

而如果你去APP设置里面清除了缓存,那么下一次听歌的时候因为缓存没有了,就必须从网络上拉取数据,如果此时没有网,那你就听不了歌了。

什么是数据

数据就是这个APP装到你手机上之后存下来的“与你有关”的内容。比如说你的账号信息,你的聊天记录,你的浏览历史,这些就是数据。

如果你清除了数据,那么就相当于把这个APP“恢复出厂设置”了。这个APP会像刚刚安装一样,完全不记得你是谁了。

清除数据的同时会把授权记录也清除掉,也就是第一次打开APP的时候问你要的一大堆权限,在清除数据之后需要重新授权一次。

有的APP是有云端数据还原功能的,比如QQ会在你登录之后从服务器拉取最近的聊天记录,如果你开了会员还可以拉很久以前的记录。微信就不行了,只能拉近期的,服务器不会帮你保存旧的聊天记录。

至于你下载的文件会不会被清除,要看这个APP把文件存哪了。如果在公共目录(download,document,DCIM,SD卡根目录这些地方),在清除数据和卸载APP后,你下载的文件仍然存在。如果在APP自己的数据目录(微信就是存自己数据目录的)那么清除APP数据以后,这些下载过的文件也就没有了。

根据这个现象也不难猜出,清除数据这个操作其实就是把APP的数据目录一锅端掉而已。而清除缓存是只删除缓存目录,别的目录不动。

为什么“百度”APP显示的不是清除数据而是存储管理?

针对浏览器类的应用,除了保存用户数据以外,还会保存标签,浏览记录,下载文件等信息。有时候用户只是想清除登录在浏览器上的账号,不想清除浏览记录。有时候是想清除记录而不是想登出账号。这个时候单单一个“清除数据”的按钮就不够用了。于是就提供了一个“存储管理”的入口,让用户进入这个APP自己定义的数据管理页面,选择自己想清除的数据来单独操作。

“百度”APP之所以是这样的选项,就是因为它把自己声明为了浏览器应用。

 
推荐文章
好帅的遥控器  ·  关于Svelte开发WebComponent的一个踩坑过程作为一个非知名Svelte布道者,我个人在最近的很长一段时间里 - 掘金
9 月前
怕考试的木瓜  ·  前端js、jquery 休眠功能的实现、定时器、3秒钟后执行和每隔三秒钟执行一次_js睡眠3秒-CSDN博客
1 年前
独立的小狗  ·  Access导出文本文件逗号分隔怎么弄-掘金
1 年前
玩命的火车  ·  HikariCP - 理解并正确使用配置 - 墨天轮
2 年前
眉毛粗的大蒜  ·  Getting Started | Building an Application with Spring Boot
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号