热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

拼多多被骂很无辜?“远程删图”原来是一场误会!

在数字时代,智能手机已经成为了我们生活中不可或缺的一部分。小小的屏幕不仅记录着我们生活的点滴与过去的回忆,也是一些重要信息与个人隐私的载体。不夸张地说,在某些公司面前,你的身份证还


在数字时代,智能手机已经成为了我们生活中不可或缺的一部分。小小的屏幕不仅记录着我们生活的点滴与过去的回忆,也是一些重要信息与个人隐私的载体。不夸张地说,在某些公司面前,你的身份证还不如你的手机更能证明自己——前段时间因手机丢失而被盗刷银行卡的新闻就是最好的例子。


所以我们也能看到大家对个人隐私、个人数据的关注度也逐渐提高,小米、vivo等手机公司更是先后推出了严格的权限管理机制,将一切试图盗取个人信息的小动作暴露在大家面前。


可是前段时间一则关于「App私下删除用户照片」的新闻却将这个功能抬至风口浪尖,也将不少用户的情绪点燃——一个第三方App,凭什么删除用户的照片?


软件真的有办法删除用户文件吗?


第三方应用有能力删除用户的数据吗?


先说结论,有。但拼多多的这份回应也没有问题,原则上拼多多没有必要去刻意删除用户的照片,这更多的应该只是误会。



但在大家开始批判之前,我想先介绍一下现代手机的数据管理机制: 在以严格权限管理闻名的iOS中,软件无论是读取、写入用户数据,都需要经过用户的专门授权,这也是iOS系统受大家喜爱的原因。但因为iOS采用了严格的沙盒机制,每个App只能对自己沙盒内的数据进行「增删改」;对于自己沙盒外的数据,App无权过问。



举个最简单的例子,我们把iPhone里一张图片导入到第三方软件里处理(注意这里是导入,而不是软件对原始图片进行直接编辑)。 处理并导出后,我们能在系统相册里看到原图与导出的照片,但在第三方软件里,我们只能看到导入时创建的副本,看不到原始照片。


即使我们在第三方软件中手动删除编辑过的照片,在系统自带的图库还也能找到原图与编辑后导出的图片。这失而复得的照片证实了一件事——在iOS中,软件只能对自己沙盒内创建(导入)的副本进行删改,只要图片离开沙盒(导出),第三方软件就无权再次访问。


Android手机稍微复杂一些,不同于iPhone严格的沙盒限制,只要用户手动授权软件访问完整存储信息,Android软件确实有权限对原始数据进行删改,大家想一下应用商店里那些「文件管理器」就明白了。



尽管如此,为了保证用户数据的安全,绝大多数软件依旧会延续iOS系统中的沙盒逻辑,仅对自己沙盒中的数据进行删除。由于不会影响用户本身的数据安全,这种沙盒机制也是Google等Android开发者更推荐的做法。


但国内Android生态从来就轮不到Google说了算,为了保证自己的软件能在各种不同的「魔改定制系统」中正常运行,部分软件开发商选择「手动造轮子」,不遵循谷歌的指引,自己想办法搭建外部通道。这次「删除照片」的风波,其实就是因软件开发不规范所引起的误会。


为什么软件要「自我清理」


那开发者为什么要大费周折,用更多的工作量来实现谷歌已经开发的功能呢?难道谷歌做的不够好吗?


有一说一,谷歌这个沙盒删除的机制确实有自己不方便的地方。


刚才我们说过,采用沙盒内访问的App无法对原始文件进行修改,只能访问「副本」。 这种做法虽然安全但不高效,同时也容易造成文件重复、冗余的问题。举个最简单的例子,第三方软件中你已经把照片删除了,但原始文件在系统相册中依然存在,这个「真假删除」的逻辑本身就是违反用户直觉的。


抛开真假删除的问题不谈,「副本」机制也容易带来重复文件的问题:我用系统相机拍摄了照片A、导入修图软件a后修图软件创建了副本图片A-a,编辑后我把A-a输出到系统相册,再倒入到拼图软件B。拼图软件导入后生成了副本图片A-a-b,如果我想把图片发到社交平台c,平台在导入时又会创建副本A-a-b-c。



这时候我们看看,手机里已经有了A、A-a、A-a-b、A-a-b-c四个文件。 而且因为这些文件都已经导出、离开了应用原本的沙盒,所以「按谷歌行事」的软件还没办法自动删除这些多余的「半成品」,这简直就是早期Android手机「相册里出现软件素材」的场景再现。


不跟开发者指引,直接使用完整权限删除编辑时留下的垃圾文件?是的,这可以方便用户,但代价是会被骂上热搜、在社交网站被拉着「游街示众」。你是开发者的话,你会怎么选?


总结


在我看来,牺牲用户体验,赶紧跟谷歌指引显然是更安全的做法。毕竟「多做多错、少做少错」,在手机里生成多余的文件最多也就是拖慢用户的手机而已。



或者这么说吧,「软件删除用户数据」的争论,本质上还是用户便利与数据安全之间的矛盾。以iPhone为例,因第三方软件无法直接对原始相册进行修改、删除,所以我常用的Google Photos无法完全代替系统自带相册;每次在微信里对图片剪切、「打码」后,相册里也会多一张需要手动删除的照片。


这么做虽然安全,但又是否是用户真正想要的呢?回想一下微信电脑端接收文件后必须「另存为」一次才能正常编辑的繁琐步骤,相信大家心里都有答案。




推荐阅读
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • Google在I/O开发者大会详细介绍Android N系统的更新和安全性提升
    Google在2016年的I/O开发者大会上详细介绍了Android N系统的更新和安全性提升。Android N系统在安全方面支持无缝升级更新和修补漏洞,引入了基于文件的数据加密系统和移动版本的Chrome浏览器可以识别恶意网站等新的安全机制。在性能方面,Android N内置了先进的图形处理系统Vulkan,加入了JIT编译器以提高安装效率和减少应用程序的占用空间。此外,Android N还具有自动关闭长时间未使用的后台应用程序来释放系统资源的机制。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • 本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ... [详细]
author-avatar
xjoliemonicane_934
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有