V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
andybest
V2EX  ›  问与答

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

  •  
  •   andybest · 2013-08-24 10:19:44 +08:00 · 6807 次点击
    这是一个创建于 4113 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如装了一个“百度云盘”,然后随便点开该云盘上的mp3,此时开始下载到手机下载完成后播放(其他的例如word文档也是如此)

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

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

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

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

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

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

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

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

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

    @9hills 能推荐一个吗?或者告诉我用什么关键字搜索?
    nulloo
        12
    nulloo  
       2013-08-24 19:19:21 +08:00   ❤️ 1
    @andybest 有写入外部存储权限的应用可以完全读写sdcard
    youdu
        13
    youdu  
       2013-08-24 20:12:01 +08:00
    我也有差不多的强迫症,眼不见为净……
    glassesboy
        14
    glassesboy  
       2013-08-24 20:47:49 +08:00   ❤️ 1
    你需要的是SD Maid Pro SD女佣(虽然那icon和女仆差得太远
    https://play.google.com/store/apps/details?id=eu.thedarken.sdm
    @andybest
    AnyOfYou
        15
    AnyOfYou  
       2013-08-24 21:00:51 +08:00   ❤️ 1
    如果应用按照标准,使用getExternalFilesDir()/getExternalCacheDir()方法去获取外部目录存储数据(具体存储位置在/Android/data/App包名下),那么这些数据会在App被卸载时由系统负责删除掉。
    但一来,上面两个方法是在API8,也就是Android2.2才加进来的(这可能算不了理由,2.2是2010年5月发布的...)。二来,很多应用根本就不按照标准来。三来,有些应用的数据也确实不应该随程序删除而被删除。
    我觉得Google是不大可能限制外部存储的权限的,似乎Android的设计里就不想让用户直接操作外部存储,从它出厂时根本就不带文件管理器和图库程序的设计上大概能看得出来。
    qiibeta
        16
    qiibeta  
       2013-08-24 21:18:56 +08:00   ❤️ 2
    你看吧,这就是iOS的优越性所在,Android反正没人管,大家都乱来,国内app我就没见过几个用 /sdcard/android/data 的(放这个地方会在卸载的时候一并删除)
    Precious
        17
    Precious  
       2013-08-24 21:40:19 +08:00
    @qiibeta
    喜欢qii就是这个愿意 :)
    andybest
        18
    andybest  
    OP
       2013-08-24 22:11:37 +08:00
    @glassesboy 感谢,但如果是 “出厂时根本就不带文件管理器和图库程序的设计” 这样的话不更是应该严格的限制app的储存范围和权限吗? (你既然对用户隐藏了文件管理器,app再加上可以随便在任意位置添加文件。。这不是灾难)
    meta
        19
    meta  
       2013-08-24 22:57:26 +08:00
    @qiibeta 这个一点也不优越,应用间的数据都无法共享。
    yangqi
        20
    yangqi  
       2013-08-24 23:12:10 +08:00
    @m 你脑残吧
    glassesboy
        21
    glassesboy  
       2013-08-25 21:15:21 +08:00   ❤️ 1
    @andybest 原生rom不带文件管理器,可以通过Google Play装第三方。图库是和相机整合在一起了,第三方的也可以通过Google Play安装。原生rom就是精简,无厂商和运营商捆绑。三星/索尼出厂都是有独立的APP(文件管理器和图库)。
    逐项权限管理从4.3+可以安心点(需要手动打开),个人以为敏感的权限就是联网/联系人/imei id/通话/短信/定位(精准GPS或大概基于网络)。APP一些功能没有指定的权限是实现不了的,但一般国内开发者声明的都多而无用。
    以百度云网盘为例(来源Google Play),重点是存储权限(吐槽国内APP敏感权限多如麻什么的)
    This app has access to these permissions:
    Your location
    approximate location (network-based)
    precise location (GPS and network-based)
    Your messages
    read your text messages (SMS or MMS)
    edit your text messages (SMS or MMS)
    Network communication
    full network access
    view Wi-Fi connections
    view network connections
    connect and disconnect from Wi-Fi
    Phone calls
    read phone status and identity
    Storage 存储
    modify or delete the contents of your USB storage 修改和删除USB存储卡上内容。可以理解为其在 /sdcard/ 有读写权限(具体为 /sdcard/BaiduNetdisk)。本来推荐是 /sdcard/Android/data/ 下,大部分能随APP卸载而清除数据。但完全凭开发者自觉(Google宽松的审查)。
    System tools
    modify system settings
    access USB storage filesystem
    mock location sources for testing
    send sticky broadcast
    test access to protected storage
    Your applications information
    retrieve running apps
    run at startup
    Camera
    take pictures and videos
    Other Application UI
    draw over other apps
    Lock screen
    disable your screen lock
    Your social information
    read your contacts
    modify your contacts
    read call log
    write call log
    Affects Battery
    prevent device from sleeping
    control vibration
    tioover
        22
    tioover  
       2013-08-25 21:37:51 +08:00
    希望有沙盒工具来限制
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3145 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 13:29 · PVG 21:29 · LAX 05:29 · JFK 08:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.