下载应用这件事,Play 商店为什么比国内软件商店更好?

对有一定经验的Android玩家来说 , 在下载App这件事情上 , Play商店依然是那个值得排除万难、能上就上的选择 , 没有之一 。坊间还流传着各种关于「Play版」应用的传闻:Play版应用有FCM推送、Play版应用更省电、Play版应用没广告、Play版应用有更适合现代设备的64位版本……
这种「Play版更好」的说法究竟是科技圈的都市传说还是确有其事?为什么国产应用在Play商店中正变得越来越少了?
今天这篇文章 , 我们从一个对普通用户而言可能会有点陌生的概念——目标API级别入手 , 希望能为你解答上面所提到的一部分问题 。
Android有几种写法?
对Android系统而言 , 同一个系统版本一般都对应了不止一种名称 , 比如对消费者而言Android12是Android12 , 或者根据Google按照字母表顺序命名的习惯叫做AndroidS;而如果2019年Google没有官宣取消甜品代号命名方式 , Android12的甜品代号SnowCone应该也会更加为大众所熟知 。
针对开发者 , 每个Android版本还会被分配到一个唯一的整数标识符 , 这个整数标识符就是API级别 。
针对这些不同的命名方式 , GitHub上也有人做了一个清晰明了的网站 , 有兴趣的朋友可以去看看 。从网站提供的表格不难看出 , 和一个甜品代号可以对应多个Android版本不同——比如Android7.0和Android7.1都可以叫「牛轧糖」——API级别和Android版本是严格对应的 。
下载应用这件事,Play 商店为什么比国内软件商店更好?
文章图片

文章图片

API级别32只可能对应Android12L , Android12L的API级别也只能是32 。对于市面上运行系统版本千差万别的Android设备而言(你同样可以在上面那个网站中看到不同Android版本的累计用户占比) , API级别也成为了开发者辨别用户系统版本和应用运行环境、保证应用兼容性的重要参考 。
具体而言:
最低API级别:代表了应用可以运行的最低系统版本 。如果一款应用的最低API级别为28 , 那么这款应用只能保证在Android9及以上系统版本中的兼容性
目标API级别:代表了应用被设计用于运行的系统版本 。如果一款应用的目标API级别为32 , 则代表这款应用被设计用于在Android12L中运行 , 因此也理所当然地支持Android12L引入的新特性
目标API级别与体验
聊完概念我们再来聊聊现象 。
即便不谈应用商店本身的使用体验 , 在能不能下到好应用这一核心需求上 , GooglePlay和各种国内应用商店都有着天壤之别 。
对国内应用商店而言 , 兼容各种鱼龙混杂、质量参差不齐的应用才是头等大事 。毕竟为了赚钱 , 大部分Android设备默认的应用商店也都是自家的 , 如果用户发现某个应用无法正常运行 , 即便这个应用本身做得非常糟糕 , 他们往往也会将「锅」扔给手机厂商 。一传十十传百 , 这家厂商的手机在这位朋友的圈子里就会被打上「不推荐」的评级 。
GooglePlay商店不一样 。
在更广泛的Android生态里 , 大多数Android设备都会搭载GMS套件、不同厂商的Android设备也能从同一个GooglePlay商店中获取应用 。因此Play商店作为由Google直接控制的应用商店 , 需要做好的就是平台本身:如何规范应用行为、如何保证设备安全、如何进行高效分发……
相对而言 , Google的地位也更加主动一点 , 如果某款Play商店的应用无法正常运行 , 用户只会将责任归咎于手机和手机系统本身 , 或是在商店里留个一星差评骂骂开发者 。
解决方案藏在目标API级别这个概念里 。
通过读取应用开发者为应用声明的targetSdkVersion清单属性 , Android系统得以判断这款应用的目标API级别是多少 , 进而确定哪些新特性可以在这款应用中启用、哪些特性则需要做适当的兼容处理 。