当前位置: 华文问答 > 数码

为什么iOS不需要GMS,而鸿蒙需要GMS?

2021-07-18数码

因为 iOS 有 iCloud,或者说是 Apple Services 套件(

GMS 就是 Google Mobile Services,Google 移动服务套件/框架。

为 Android 应用提供 系统基础组件 能力。

为什么需要这个呢?

比如说,你想做一个外卖应用。

你得处理好地图的展示,你只是一个做外卖服务的,你怎么处理地图呢?

在国内 Android 一般就是买,买百度地图,高德地图之类的商业服务。

这服务不便宜,而且一般人还不好买。

在 Apple 平台可以直接引入 Apple 提供的 MapKit。

在 Apple 平台内,可以免费,无限制使用高质量的地图数据。(Apple 国内地图数据来自高德)

不需要额外购买,没有限制,只要你声明引入 MapKit 就可以。

在国外 Android 呢?

一般是直接引入 Google 地图。

也是和 Apple 引入 MapKit 一样,免费,无限制使用。

但是 Google 地图来自哪里呢?

来自于 GMS。

如果你的手机没有 GMS,打开这个应用就会无法正常使用。

这仅仅是 地图 部分,GMS 包含了 Android 几乎所有应用开发领域可能用到的功能。

包括但不限于,地图/帐号/搜索/相册/数据同步/付费/认证/分享/应用商店/通知推送 等等。

有人可能会说 HUAWEI 的 Android 本身也提供类似功能啊。

应用商店没有,换一个就行了啊。

但实际上问题在于,拥有 GMS 的设备可以无缝从一个厂商迁移到另一个厂商。

你没有,在换新设备的时候,自然不会最优先考虑你。

跟随他多年的数据,就因为一个没有什么特别吸引力的手机全放弃了?

对于大部分 国内 Android 用户来说,GMS 的缺失大概率没有任何影响。

国内无法正常使用大部分 Google 服务,大部分国内应用都有各自生态。

但是对于外国用户,没有 GMS 几乎寸步难行。

因为对于国外开发者来说,几乎所有应用或多或少都引用/依赖了 GMS 直接提供的功能。

就像我本身作为 iOS/Android 开发者,我的 iOS 应用基本上都适配了 CoreData 与 CloudKit。

持有多个 Apple 设备的用户在我的应用下,Apple iCloud 会自动同步所有数据,而且数据仅仅保留在他本地与 iCloud 服务器。

同样,基于 iCloud 家庭与分享,可以与家庭用户共享部分数据。

不会上传到我的服务器,保证私有数据隐私。

我的 Android 程序也使用了 GMS 的相关服务,达成相同/类似的功能。

而且我的 Android 程序没有针对没有 GMS 的情况下做出容错,未安装 GMS 的 Android 设备打开会直接闪退。

这也是大部分国外 Android 程序的表现。

Google 开源了 Android,理论上 Android 属于全人类。

但 Android 是一个由 Google 主导的开源项目,Google 是一个拥有大量互联网基础服务的商业公司。

Android 操作系统 内 没有提供任何 与 操作系统 基础具有 功能无关的任何功能。

Google 没有在 Android 内提供任何 依赖于 Google 的 服务/功能/框架。

转而提供了一个由 Google 完全掌控的服务授权体系。

GMS。

所有由 Google 提供的功能都独立在 Android 之外,由系统扩展的方式安装进 Android 系统。

而对于 Android 应用开发者来说。

你可以在 Android 上制作任何东西,但对于小公司/个人来说,很多功能,必须依赖于 GMS。

而 Google 在 Android 应用商店领域又是几乎垄断。

在 Android 上,第三方应用商店的市占率不高,相关核心框架缺失或是功能缺失。

Android 纵使没有禁止第三方商店,和直装应用。

但对于小开发者来说总归要登陆 Google Play。

自然,Android 和 GMS 就越来越密不可分。

Android 越强,则 Android 开发者越依赖 Google。

Android 开发者越依赖 Google,则 Android 生态越依赖 Google。

Android 生态越依赖 Google,则 Google 对 Android 掌控越强。