Android app有没有办法可以干净的卸载?

2013-08-24 10:19:44 +08:00
 andybest
比如装了一个“百度云盘”,然后随便点开该云盘上的mp3,此时开始下载到手机下载完成后播放(其他的例如word文档也是如此)

这时候卸载该app,之前已下载的mp3,word文档这些就永久永久永久的驻留在我手机上了,如果不去用文件管理器翻,就没任何办法清除了

其他的app也有这类的问题,这个有没有办法可以解?对于强迫症患者来说这真的让人很难受。。。
6826 次点击
所在节点    问与答
22 条回复
yangqi
2013-08-24 10:22:16 +08:00
这个算是你自己下载的文件啊,当然要文件管理器去删了,和app没什么关系吧
bzw875
2013-08-24 10:22:49 +08:00
同样很想知道,就是怕他在android或者各种系统我文件夹,或者手机内存里那些又访问不了。
andybest
2013-08-24 10:24:44 +08:00
@yangqi 我在该app里点击(我哪知道他会下载),我也没选择目录,他自动去下载,我也不知道下哪去了,我卸载了他还在。。。这正常吗?
如果每个app都在用户卸载后驻留在app里用户点击产生的下载,缓冲,这手机还能用么。。。
andybest
2013-08-24 10:27:23 +08:00
@bzw875 是,android的权限真是让人着急,为什么任何一个app都有任何位置的读写权限,为什么卸载删哪些文件就要靠app开发者良心?这也太windows了
yangqi
2013-08-24 10:45:24 +08:00
@andybest 你在电脑上用浏览器下载的文件,你删除浏览器的时候也希望把那些文件都删了?

下载位置的话设置里可以改的
andybest
2013-08-24 10:53:09 +08:00
@yangqi 首先,这不是一个下载行为,我只是一个点击,可能我举百度云盘的例子错了,你可以套在视频app里看在线视频,音乐播放app里听歌。

如果你认为我用app看视频产生的缓冲都是用户自主下载的,都不该在卸载该app时删除,你赢了。

明确的下载行为肯定不用在卸载app时删除,但我说的不是下载行为,如果你不理解,因为一个app里一个点击产生的任何行为都是用户自主的下载行为,下载的东西都不应该在卸载该app时删除,那我真无话可说。。。你真赢了
m
2013-08-24 10:59:36 +08:00
@yangqi 智商堪忧
myang
2013-08-24 11:11:13 +08:00
百度云盘的具体情况不知道,但一般正规的app都遵循这样的原则:

- 缓存。像类似的dropbox,直接点一个文件是将文件存入“缓存”,缓存在app设置里可以清除,在系统应用设置里也可以清除,一般来说,当然你准备删除app的时候,进入系统应用,清除缓存+清除数据+卸载三个顺着点完,可以彻底删除app,完全不留任何文件。

- 离线。一些在线app支持离线功能。比如dropbox加星,是将文件存入“数据”。系统设置里的清除数据可以将一个app的所有数据,包括账号、设置、以及此类离线文件完全删除。

- 下载。将文件导出到本地文件系统里。如浏览器下载、dropbox导出等,文件脱离应用,这种情况一般来说卸载软件的时候不希望删除,只有这些文件才需要用到文件管理器。
meta
2013-08-24 17:42:26 +08:00
app没有任意位置的读写权限,他只有读写自己在data的目录和sdcard的权限。
9hills
2013-08-24 18:08:21 +08:00
你需要的/sdcard目录的清理工具。。是有很多的

不过还是希望Google限制sdcard的读写权限,采用应用文件夹的方法来搞
andybest
2013-08-24 19:06:03 +08:00
@meta 非常感谢,也就是app只有在sdcard自己制定的目录下有读写权限是吗?一个app最多污染一个sdcard下的目录?

@9hills 能推荐一个吗?或者告诉我用什么关键字搜索?
nulloo
2013-08-24 19:19:21 +08:00
@andybest 有写入外部存储权限的应用可以完全读写sdcard
youdu
2013-08-24 20:12:01 +08:00
我也有差不多的强迫症,眼不见为净……
glassesboy
2013-08-24 20:47:49 +08:00
你需要的是SD Maid Pro SD女佣(虽然那icon和女仆差得太远
https://play.google.com/store/apps/details?id=eu.thedarken.sdm
@andybest
AnyOfYou
2013-08-24 21:00:51 +08:00
如果应用按照标准,使用getExternalFilesDir()/getExternalCacheDir()方法去获取外部目录存储数据(具体存储位置在/Android/data/App包名下),那么这些数据会在App被卸载时由系统负责删除掉。
但一来,上面两个方法是在API8,也就是Android2.2才加进来的(这可能算不了理由,2.2是2010年5月发布的...)。二来,很多应用根本就不按照标准来。三来,有些应用的数据也确实不应该随程序删除而被删除。
我觉得Google是不大可能限制外部存储的权限的,似乎Android的设计里就不想让用户直接操作外部存储,从它出厂时根本就不带文件管理器和图库程序的设计上大概能看得出来。
qiibeta
2013-08-24 21:18:56 +08:00
你看吧,这就是iOS的优越性所在,Android反正没人管,大家都乱来,国内app我就没见过几个用 /sdcard/android/data 的(放这个地方会在卸载的时候一并删除)
Precious
2013-08-24 21:40:19 +08:00
@qiibeta
喜欢qii就是这个愿意 :)
andybest
2013-08-24 22:11:37 +08:00
@glassesboy 感谢,但如果是 “出厂时根本就不带文件管理器和图库程序的设计” 这样的话不更是应该严格的限制app的储存范围和权限吗? (你既然对用户隐藏了文件管理器,app再加上可以随便在任意位置添加文件。。这不是灾难)
meta
2013-08-24 22:57:26 +08:00
@qiibeta 这个一点也不优越,应用间的数据都无法共享。
yangqi
2013-08-24 23:12:10 +08:00
@m 你脑残吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/80062

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX