发现很多人不理解各大渠道强制要求适配 API26+的意义

2019-01-03 11:04:58 +08:00
 0x8192dd

前段时间发版时接到华为的提醒,请尽快提升 targetSdkVersion,所有进入商城的应用在明年 5 月 1 号之前必须将 targetSdkVersion 提升到 26+,也就是说必须适配动态权限和一系列后台管理机制,否则届时将被下架和拒绝更新。

去查了一下发现目前国内主要分发渠道均已签署《移动应用软件高 API 等级预置与分发自律公约》 http://www.taf.net.cn/News_detail.aspx?_NOTICE_ID=231

各大平台 9 月初均已下发通知
https://developer.huawei.com/consumer/cn/notice/20180831
https://open.oppomobile.com/service/message/detail?id=116121
https://developer.vivo.com.cn/doc/dynamic/dynamicDetail?dynamic.id=63
http://www.miui.com/thread-17897687-1-1.html

然而好像没啥波澜,广大国内 Android 用户并没多少人知道……

也就是说从 5 月 1 号开始,大家从国内主要渠道下载的 Android 应用都将会适配动态权限,后台限制,安装权限申请, 预估利用向下兼容拒不适配的国产应用在今年内将从国内主要渠道消失

我跟别人讨论这个发现很多人根本不理解这个限制的意义,总是讨论到“不给权限就强退”上面去…… 我随便举几个例子说下适配到 API26+ 意味这什么

  1. 很多反射调用系统隐藏 SDK 的方法(深灰名单 API )将会报错,有些黑科技彻底报废
  2. 应用在后台创建服务进程 5 秒内如果没有调用 startForeground 方法将其变成前台进程,将被系统强杀
  3. 应用想要执行安装必须申请安装权限,如果用户拒绝,不可能静默下载调起安装
  4. 要求应用通知栏消息必须适配通知渠道,比如一个应用分成推送和私信两个渠道,你不想看推送,怕错过私信, 就可以关闭推送渠道,应用厂商一般会适配的,除非它想被用户一刀切

运行时权限很重要,但是适配到 API26+所带来的限制远不止这些。而且这个通知的下发是一个大势的转变,表明国内主要渠道正在联合制定规则,现在可以要求不适配高版本的下架,以后也可以要求不给权限不能运行的下架,时间早晚的问题。

10807 次点击
所在节点    Android
26 条回复
honeycomb
2019-01-03 18:42:31 +08:00
@longaiwp 可是本就是它们滥用后台,当然要自己填了
honeycomb
2019-01-03 18:43:50 +08:00
@dychenyi 不会,但这件事是好的。
jim9606
2019-01-03 23:33:21 +08:00
提升 target 这种事对用户无感知,非 android 开发者不知道很正常。
如果 target 太低,许多新系统的安全策略就难以执行(要兼容)
相当长一段时间的手机 QQ 的 targetsdklevel 是 9(比 mininumsdklevel 还要低),原因很好猜

对于相对懂点行的用户,target>23 时拒绝权限时 APP 是可以知道的,意味着某些 APP 可以以不运行威胁用户授权,低 target 或者 6.0 以前版本的系统的权限管理是非官方标准,通常 OS 厂商是通过返回假数据的功能实现的。这是这部分用户不希望高 target 的原因,例如想在不授权 IMEI 的话微信就会不运行。

一般开发者的问题就是黑科技用得越多升 target 越困难,所以没有需要时少用黑科技,包括但不限于使用反射调用不公开 API
HangoX
2019-01-08 09:40:12 +08:00
我之前真不知道为什么升不上去,但是直到我来到现在公司。那个代码非常烂,升级上去之后要忍受可能好几个模块都有可能不能用。很多安卓的开发人员其实并不是那么懂安卓开发,这个是现在安卓开发的现状
0x8192dd
2019-01-08 17:44:03 +08:00
@HangoX 其实吧,主要是依赖的 SDK,自己公司的代码想怎么改都行,大不了花点时间呗,依赖的有些 SDK,提供商不维护你也没办法,有些又老又破的开源库更是恼火
bclerdx
2020-05-01 14:13:13 +08:00
我发现操作系统更新至 Oreo 或 Pie 后,如果应用的 targetSdkVersion 也就是目标 SDK 等于 26 的时候,运行第三方应用并最小化后,等待 1 分钟所有,不会受 Oreo 或 Pie 的对 APP 后台占用运存的管控,不会自动被系统干掉进程或服务,但 targetSdkVersion 等于 28 及以上的,则会受 Oreo 或 Pie 的对 APP 后台占用运存的管控,被系统主动干掉进程或服务。请问这是什么原因呢?

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

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

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

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

© 2021 V2EX