安卓手机使用问题


#1

小米8,miui国际版,play商店,使用了一段时间,有些问题想问下: 1、从play商店下载的app,要权限的方式我遇到三种: 第一种最普遍:app安装完了,点图标第一次运行的时候索要,比如要电话、定位、通讯录权限 第二种很霸气:play商店下载完app,安全机制扫描后,正要开始安装前,列出app需要的所有权限,有可能扣费的项目标注为红色,当你允许后,一直到运行app,都不会再要求权限,也就是刚才你允许的时候就允许了他列出来的所有权限的使用权。不知道这种是app取得了google的某种认证还是咋的,一下就要走所有权限,而不是像第一种似的,请求一个才允许一个。比如qq同步助手、speedtest、中国银行(不是从play下的,从官网下)、刺激战场(不是从play下的,从官网下)、物美多点 第三种特别官方:欧路词典,从play里点下载按钮后即列出需要的权限,允许后才能下载,不允许连下载都不下,同第二种,允许后到运行都不会再请求权限,一下就要走所有权限的感觉。

现在就是特别糊涂为啥他们要权限的方式不同,第一种是ios的那种方式,第二、三种疑惑为什么方式不同,是更加正规的安卓方式还是歪门邪道的方式,谁能说说么?


#2

目前的方式是一项一项确认。你说的第二种应该是很老的应用了,今年以来我都没有碰到过。

第三种没碰到过啊,我们用的是一个 Google Play 么?我点欧路词典的安装按钮后就直接进入下载了…


#3

首先,建议楼主使用类原生系统了解一下Android自身的权限机制,因为你的描述中能发现不少问题。

这里先按程序获取权限和用户控制/修改权限两方面来介绍一下。

  • Android 应用程序目前获取权限的方式有两类:
  1. 将目标平台声明为 API Level 22(as know as Android 5.1) 或更早,这样可以恶意利用Android为了兼容早期的应用程序而(在安装后)默认授予全部权限的行为。因此,Google对这些应用仅提供权限提醒,而不作实际控制,具体来说,包括Google Play上和本地文件点击安装按钮后弹出的权限列表。
  2. 目标平台为API 23(a.k.a. Android 6.0)及以上, 意味着应用程序对外声明自己成功适配了所有目标平台的特性,当然也就包括API 23引入的动态运行时(Runtimr Permission)机制。这类程序在Play Store 中点下安装按钮时并不会提醒所需的权限,本地文件点击安装按钮后会提示不需要任何权限。【注①】但近期下载过的应用在没有发布新版本的情况下重新安装有可能不会被再次提醒。
  • Android 应用程序(实际获取到的)权限,可以从两方面来控制:
  1. 对于Android系统版本处于4.4~6.0(≥4.4 & <6.0)的大多数用户来说,可以使用App Ops来修改应用程序已经获得的权限。【注②】
  2. 对于Android系统版本处于6.0及以上的用户,可以通过在系统中修改运行时权限来控制应用程序的权限。【注③】

注:

  • ①:Google目前正在积极督促开发者提高Target API Level,如果推进顺利,那么在几年后应该可以看到新系统不再兼容老应用(就像现在的iOS一样)。

  • ②:4.4上该功能是一项实验性特性,默认情况下并不向所有用户开放,需要使用第三方程序作为入口,或使用CyanogenMod等第三方系统;5.0则由系统开放入口,且不同厂商(如HTC, Sony Mobile等)对此进行了不同扩展,例如数据流量等本来不在原生系统控制范围内的权限也都纳入其中;允许以权限组内的小项为单位进行更为细致的控制(而原生系统中则只能按组控制,和6.0以后的运行时权限一模一样)。

  • ③:运行时权限提倡应用只有在用户触发相关行为时才进行权限请求,但部分垃圾国产应用会在首次运行时就一次性请求所有权限;同时,这也是一种对开发者友好的权限管理机制,因为程序可以得知用户是否同意获取权限(而不是像App Ops那样直接丢出Null),从而作出恰当的回应,但又被垃圾国产应用滥用了,他们会让程序在得知用户不同意给予某项权限时退出。之所以说是垃圾国产应用而不是国产垃圾应用,是因为海外应用即使是评分2星以下的垃圾,也罕有采取此类行动的应用程序,也就不存在什么“洋垃圾应用”。

  • 理解了以上内容,让我们来试着解释一下你的问题:

  1. 属于第二种权限控制方式的注解③中提到的情况;但也有可能是第一种权限控制方式遇上了手机厂商的修改。
  2. 安全扫描机制是MIUI的扫描吗,还是说是Play Store的,Play Store的话应该只是告诉给用户经过扫描而已,扫描未通过的早就被下架了,anyway, 我们可以先忽略不管,这不是权限控制的范围。于是,列出所有权限且扣费项目标红/标橙绝大多数情况下是第一种权限控制方式。
  3. 依然属于第一种权限控制方式,但是因为你是从Play Store下载,所以由Play Store代替你在2中使用的本地安装包管理程序进行权限提醒(依然是默认不作任何控制)。

#4

等我再看看,有点看不懂……不过感觉是特别专业,谢谢。我也想看看原生安卓是啥样的控制方式,但没亲儿子呀,小米8是我第一台安卓~感觉(仅仅是感觉)国际版的rom已经是比国内版的miui更接近原生的方式了。我说的那个“安全机制扫描后”我认为是play商店设置按钮上边“play保护机制”