V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
0x8192dd
V2EX  ›  Android

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

  •  4
     
  •   0x8192dd · 2019-01-03 11:04:58 +08:00 · 14691 次点击
    这是一个创建于 2153 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前段时间发版时接到华为的提醒,请尽快提升 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+所带来的限制远不止这些。而且这个通知的下发是一个大势的转变,表明国内主要渠道正在联合制定规则,现在可以要求不适配高版本的下架,以后也可以要求不给权限不能运行的下架,时间早晚的问题。

    26 条回复    2020-05-01 14:13:13 +08:00
    fanhaipeng0403
        1
    fanhaipeng0403  
       2019-01-03 11:12:16 +08:00   ❤️ 5
    作死的头像
    orangeade
        2
    orangeade  
       2019-01-03 11:14:32 +08:00 via Android   ❤️ 4
    这就是国内一大批安卓 app 开发的水平了,好好关注下 Google I/O 也不至于这样
    redial39
        3
    redial39  
       2019-01-03 11:22:03 +08:00
    是不是意味着锤子手机要吃瘪了?他从不更新 android 内核 = =
    0x8192dd
        4
    0x8192dd  
    OP
       2019-01-03 11:23:20 +08:00
    @orangeade
    没适配过的不知道厉害,以为就适配个动态权限,前两天我申请时间适配到 Android P,第三方 SDK 一堆报错头都疼炸😂
    longaiwp
        5
    longaiwp  
       2019-01-03 11:26:50 +08:00
    问题是升级到 26 也不是 P 啊,不会限制你的私有 API 调用(灰黑名单),P 还限制你不能默认用 http 呢。target 到 26 问题一般都是很少的,主要是 O 的后台权限会比较蛋疼。
    0x8192dd
        6
    0x8192dd  
    OP
       2019-01-03 11:27:13 +08:00
    @redial39 跟手机厂商没关系,主要是应用厂商,毕竟这几个主要渠道的用户损失不起
    0x8192dd
        7
    0x8192dd  
    OP
       2019-01-03 11:29:45 +08:00
    @longaiwp 记错了,深灰名单是 API 28
    deepdark
        8
    deepdark  
       2019-01-03 11:31:06 +08:00 via Android
    头像是<我看今天谁敢念诗>.jpg
    BOYPT
        9
    BOYPT  
       2019-01-03 11:43:05 +08:00
    微信 7 在华为商家受阻难道也是这个原因?
    0x8192dd
        10
    0x8192dd  
    OP
       2019-01-03 11:46:25 +08:00
    @BOYPT 华为商城的政策很严格,他们的测试要通过,崩溃率、耗电、息屏后运行时间这些都有严格要求的,而且微信本身也是适配到 26+的,应该不是这个原因
    learnshare
        11
    learnshare  
       2019-01-03 11:50:55 +08:00
    多少小厂跟不上 Android 版本更新的,要完蛋
    azh7138m
        12
    azh7138m  
       2019-01-03 11:55:38 +08:00 via Android
    @0x8192dd wechat 6.7.3 api 23
    我怕使用的假微信
    0x8192dd
        13
    0x8192dd  
    OP
       2019-01-03 12:02:23 +08:00
    @azh7138m 擦,我看了一下,我 Google Play 下的也是 23,记忆有误😂
    notreami
        14
    notreami  
       2019-01-03 12:04:24 +08:00
    2、3 线城市的 柜台华为机,还没销售完呢。华为这么着急想打造高端路线了?
    yexm0
        15
    yexm0  
       2019-01-03 12:10:44 +08:00 via Android
    @azh7138m 版本要更新一下
    azh7138m
        16
    azh7138m  
       2019-01-03 12:12:56 +08:00 via Android
    @yexm0 play 没更新 荣耀商城也没有
    ph1 和荣耀 8 都没法更新呢
    eamo
        17
    eamo  
       2019-01-03 14:45:06 +08:00
    华为 9.0 系统除了个 api 14 的系统应用 com . google . ondroid . gms . policy_sidecor_aps

    mmdsun
        18
    mmdsun  
       2019-01-03 14:53:26 +08:00 via Android
    我劝楼主赶快 江公补过。
    dychenyi
        19
    dychenyi  
       2019-01-03 17:39:41 +08:00
    所以安卓生态要变好了?
    kljsandjb
        20
    kljsandjb  
       2019-01-03 18:06:33 +08:00 via iPhone
    思维不要江化😂
    honeycomb
        21
    honeycomb  
       2019-01-03 18:42:31 +08:00 via Android
    @longaiwp 可是本就是它们滥用后台,当然要自己填了
    honeycomb
        22
    honeycomb  
       2019-01-03 18:43:50 +08:00 via Android
    @dychenyi 不会,但这件事是好的。
    jim9606
        23
    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
        24
    HangoX  
       2019-01-08 09:40:12 +08:00
    我之前真不知道为什么升不上去,但是直到我来到现在公司。那个代码非常烂,升级上去之后要忍受可能好几个模块都有可能不能用。很多安卓的开发人员其实并不是那么懂安卓开发,这个是现在安卓开发的现状
    0x8192dd
        25
    0x8192dd  
    OP
       2019-01-08 17:44:03 +08:00
    @HangoX 其实吧,主要是依赖的 SDK,自己公司的代码想怎么改都行,大不了花点时间呗,依赖的有些 SDK,提供商不维护你也没办法,有些又老又破的开源库更是恼火
    bclerdx
        26
    bclerdx  
       2020-05-01 14:13:13 +08:00
    我发现操作系统更新至 Oreo 或 Pie 后,如果应用的 targetSdkVersion 也就是目标 SDK 等于 26 的时候,运行第三方应用并最小化后,等待 1 分钟所有,不会受 Oreo 或 Pie 的对 APP 后台占用运存的管控,不会自动被系统干掉进程或服务,但 targetSdkVersion 等于 28 及以上的,则会受 Oreo 或 Pie 的对 APP 后台占用运存的管控,被系统主动干掉进程或服务。请问这是什么原因呢?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3208 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 13:34 · PVG 21:34 · LAX 05:34 · JFK 08:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.