动态权限<二>之淘宝、京东、网易新闻 权限申请交互设计对比分析

简介: 移动智能设备的快速普及,给生活带来巨大的精彩,但是智能设备上用户的信息数据很多,隐私数据也非常多,各种各样的app可能通过各种方式在悄悄的收集用户数据,而用户的隐私就变得耐人寻味了。比如之前的可以无限制的读取用户的联系人数据、短信记录、通话记录等,这些信息一旦泄露,可能就会造成重大财产损失。

      移动智能设备的快速普及,给生活带来巨大的精彩,但是智能设备上用户的信息数据很多,隐私数据也非常多,各种各样的app可能通过各种方式在悄悄的收集用户数据,而用户的隐私就变得耐人寻味了。比如之前的可以无限制的读取用户的联系人数据、短信记录、通话记录等,这些信息一旦泄露,可能就会造成重大财产损失。腾讯社会研究中心和DCCI互联网数据中心日前发布《2017年度网络隐私安全及欺诈行为研究分析报告》,《报告》显示,98.5%安卓手机APP存在获取用户隐私权限问题,iOS应用获取用户隐私权限也达到81.9%。用户从来无法感知这些数据收集行为,也发确定行为会触及到隐私数据,而为了保护用户隐私,谷歌android6.0加入了隐私信息获取的权限申请。其主要的目的就是在涉及到需要使用隐私数据的时候,进行权限申请。制定的权限策略分为两类:第一类是不涉及用户隐私的,只需要在manifest中声明即可,比如网络,蓝牙,NFC等,第二类是涉及用户隐私信息的,需要用户授权后才可使用的,比如SD卡读写,联系人,短信读写等等。

     接下来我从当前市场上一线大厂的应用进行分析对比,主要是淘宝、京东、网易新闻、今日头条、哔哩哔哩、腾讯新闻,分析和对比的维度从启动权限申请数量、运行权限申请、交互提示等方面进行。

1.启动权限申请

app 启动权限申请   说明
淘宝 电话权限  

不授予电话权限无法进入应用。

当选择不授予权限,则程序在获得操作结果以后继续申请,当选择不再提示,引导进入设置页面进行开启权限。

京东 电话权限  

不授予电话权限无法进入应用。

当选择不授予权限,则程序在获得操作结果以后继续申请,当选择不再提示,引导进入设置页面进行开启权限。

网易新闻

进入首页以后申请,

电话权限

存储权限

位置权限

禁止也不影响应用正常使用,下次启动的时候还会继续申请未授权的权限。当选择不再提示,则在下一次启动应用时引导用户进入设置页面进行开启权限。
今日头条 电话权限   不授予电话权限也可以进入应用,选择禁止下次启动应用会继续申请,当选择不再提示,下次启动应用不提示。
哔哩哔哩 无       直接进入应用
腾讯新闻 进入应用后进行申请位置权限和电话权限

 从启动权限申请来看,淘宝、京东作为电商派app,作风比较强硬,不授权则无法进入应用,相对来说,新闻类app这方面就做的比较好,其中网易新闻和腾讯新闻比较突出,腾讯新闻申请的数量比较少。而哔哩哔哩的实现是最理想的,启动到进入应用全程无申请,而是到了具体使用的时候在申请这一轮比较哔哩哔哩胜出。

  2.所有敏感权限比较

app   所有权限  说明
淘宝

存储

位置

日历

电话

相机

通讯录

麦克风

 
京东

存储

位置  

电话

相机

通讯录

麦克风

 
网易新闻

存储

位置  

电话

相机

通讯录

麦克风

 
今日头条

存储

位置  

电话

相机

通讯录

麦克风

 
哔哩哔哩

存储

位置  

电话

相机  

麦克风

 
腾讯新闻

存储

位置  

电话

相机

通讯录

麦克风

 

从涉及到的主要权限来看,淘宝的权限数量是最多的,多了一个日历的权限,说明淘宝有一些业务需要在对应日期进行的必要操作,涉及到对日历的修改。其他的app权限申请大同小异,部分需要通讯录的权限,可能涉及到用户账号的问题,应该是有和手机厂商合作,可以使用android系统的账号登录,这种业务合作能力也不是一般的app所能具备的,与此同时肯定还有类似白名单的业务合作也是同样情况。其中又可以对比的出来哔哩哔哩真的是良心作品,没有那么多的权限,精简实在。

3.运行时权限检查比较

这里选取一个场景就是拍照的相机权限作为比较。

应用 交互 说明
淘宝 点击二维码扫描,弹出系统权限申请,选择禁止相机权限,再次点二维码扫描,仍然会提示申请,但是如果勾选不再提示,则会闪一下一个白色页面,交互不理想。见图1  
京东 点击头像,首先弹出自定义的框进行一些说明,然后点击下一步,才进行系统权限申请。党选择禁止,再次点击头像,仍然会提示申请。如果勾选不再提示。则会引导用户进入设置页面。  
网易新闻 点击头像,首先弹出自定义的框进行一些说明,然后点击下一步,才进行系统权限申请。党选择禁止,再次点击头像,仍然会提示申请。如果勾选不再提示。则会引导用户进入设置页面。  
今日头条 点击头像,首先弹出自定义的框进行一些说明,然后点击下一步,才进行系统权限申请。党选择禁止,再次点击头像,仍然会提示申请。如果勾选不再提示。则会引导用户进入设置页面。  
哔哩哔哩 点击头像,首先弹出自定义的框进行一些说明,然后点击下一步,才进行系统权限申请。党选择禁止,再次点击头像,仍然会提示申请。如果勾选不再提示。点击无交互或者提示。  
腾讯新闻 点击头像无反应,这个牛逼了 我猜是个bug。。。。

从交互设计上看,京东、网易、今日头条的处理是最好的,在进行权限申请的时候最好加一个自定义的提示弹窗,给用户知情权,虽然还是有少部分用户不同意授权,但是从设计交互上做到的用户知情。看的出来有一些app存在一些缺陷。

4.通用组件的权限说明。

从一个app产品角度来看,肯定会存在下面的组件:分享组件、统计组件、推送组件,可能存在支付、地图,那么这些组件又需要那些敏感权限呢,下面列举一下。

组件  权限 说明
sharesdk

存储

电话

 

 
友盟

存储

定位

电话

 
地图

存储

定位

 
个推

存储

电话

 

综上所述:权限的申请和业务是有必然的关联的,如果不能放弃某个启动时就必须进行的业务,那么权限申请必然需要进行。上面分析可以看到出来淘宝和京东在启动时,就有电话的权限申请,说明应用重视某项业务,这个业务必须要进行初始。而新闻类app相对来说拥有较大的空间,对比如推送、统计类组件的初始和数据可以不那么重视,或者是比如推送有其他的途径可以不用那么早的初始化。就交互体验上来说,我觉得最舒服的还是哔哩哔哩,如果他在勾选不再提示后的处理优化就更好额。

   

 

目录
相关文章
|
机器学习/深度学习 监控
数据漂移、概念漂移以及如何监控它们(mona)
在机器学习模型监控的上下文中经常提到数据和概念漂移,但它们到底是什么以及如何检测到它们?此外,考虑到围绕它们的常见误解,是不惜一切代价避免数据和概念漂移的事情,还是在生产中训练模型的自然和可接受的后果?请仔细阅读,找出答案。在本文中,我们将提供模型漂移的细粒度细分,以及检测它们的方法以及处理它们时的最佳实践。
|
SQL 缓存 Java
Mybatis-plus缓存机制
MyBatis-Plus(简称MP)是一个基于MyBatis的增强工具,提供了更便捷的CRUD操作和其他功能。与MyBatis相比,MyBatis-Plus并没有引入自己的缓存机制,而是直接使用了MyBatis的缓存机制。 在MyBatis中,缓存分为一级缓存和二级缓存。 1. 一级缓存:一级缓存是SqlSession级别的缓存,它默认是开启的。当查询操作执行时,查询的结果会被缓存在SqlSession的内部数据结构中。如果后续再次执行相同的查询,MyBatis会先检查一级缓存中是否存在结果,如果存在则直接返回缓存的结果,而不会再次执行SQL语句。一级缓存的生命周期与SqlSession相同,
1358 0
|
6月前
|
JSON 监控 网络协议
Bilibili直播信息流:连接方法与数据解析
本文详细介绍了自行实现B站直播WebSocket连接的完整流程。解析了基于WebSocket的应用层协议结构,涵盖认证包构建、心跳机制维护及数据包解析步骤,为开发者定制直播数据监控提供了完整技术方案。
|
机器学习/深度学习 人工智能 自然语言处理
|
安全 编译器 C语言
C语言安全编程:避免缓冲区溢出等安全。
C语言安全编程:避免缓冲区溢出等安全。
|
Prometheus Cloud Native 调度
Sentinel 新版本发布,提升配置灵活性以及可观测配套
Sentinel 新版本发布,提升配置灵活性以及可观测配套
1430 106
如何在IDEA中创建Module、以及怎样在IDEA中删除Module?
这篇文章介绍了在IntelliJ IDEA中使用Module的原因、创建Module的步骤以及如何从硬盘上删除Module。
如何在IDEA中创建Module、以及怎样在IDEA中删除Module?
|
Prometheus 监控 Cloud Native
构建高效稳定的Docker容器监控体系
【5月更文挑战第14天】 在现代微服务架构中,Docker容器作为应用部署的基本单元,其运行状态的监控对于保障系统稳定性和性能至关重要。本文将探讨如何构建一个高效且稳定的Docker容器监控体系,涵盖监控工具的选择、关键指标的采集、数据可视化以及告警机制的设计。通过对Prometheus和Grafana的整合使用,实现对容器资源利用率、网络IO以及应用健康状态的全方位监控,确保系统的高可用性和故障快速响应。
|
JSON Java 数据格式
Spring Boot 中的 @DateTimeFormat 和 @JsonFormat 的用法及作用
【6月更文挑战第11天】在开发 Spring Boot 应用时,处理日期和时间数据是一个常见的需求。Spring Boot 提供了两个注解 @DateTimeFormat 和 @JsonFormat 来帮助我们处理这些问题。
951 4
|
JavaScript 前端开发 UED
探索 Vue 异步组件的世界:解锁高效开发的秘密(上)
探索 Vue 异步组件的世界:解锁高效开发的秘密(上)