作者 | 郭芮
出品 | CSDN(ID:CSDNnews)
前不久,因
Android 向华为“闭源”
一事,Google 频频被推上风口浪尖,关于开源和操作系统的讨论也不绝于耳。不过数日,近来 Google 又遭指控!不改强硬作风的 Google ,此番再次坐实了“独断专行”的标签。据外媒 Reddit 报道,Google 正在强制要求 APP 开发者们使用其专有的 Firebase 后台服务来推送通知,否则这些 APP 用户们就会收到“耗电严重!”的提醒。
不使用 Google 服务就“报错”?!
报道表示,目前 Telegram-FOSS、riot.im 等 FOSS(Free and Open Source Software,自由及开源软件)应用程序的消息通知功能就面临着这一限制。具体而言就是,Google 利用其在 Android 发行版上的垄断优势,迫使应用程序使用其专有的 Firebase 服务来推送通知。
但这其中却存在一个问题,Firebase 是 Android 专有的, FOSS 应用程序使用的话必然会存在兼容适配等问题。Google 却直言,任何不符合要求的应用——即未使用 Firebase 服务的——它们会直接向用户发送“耗电严重!”的提醒。
事实上,Android 系统从来都不是完全开源的。
逐渐封闭的 Google
Android 的“封闭”近年来有目共睹。
早在 2013 年,欧洲自由软件基金会的 Torsten Grote 就发表过文章称,Android SDK 并不是自由软件,其新条款(
https://developer.android.com/studio/terms)中明确列有“你可能不能复制(备份目的除外)、修改、改编、重新发行、反编译、逆向工程、反汇编,或创造任何 SDK 部分的衍生作品”等文字——而且它的“闭源”之势还在随着近年来垄断地位的持续牢固而不断加大。
众所周知,Android 包括两部分:一部分是 AOSP(Android Open Source Project)的代码库,作为 Android 的基础;另一部分是闭源组件, 即 Google 提供的各种服务应用。
前者可为开发者提供所需信息和源代码,创建定制的 Android 操作系统版本,将设备和配件移植到 Android 平台,同时确保设备符合兼容性要求。多年来,Google 为了防止碎片化问题的逐渐加剧,一直通过扩充自家应用的种类,从而替换掉原来的 AOSP 组件,间接来缩减 Android 系统的开源程度。Google 搜索、Google 音乐、Google 相机、Google 键盘、Chrome 浏览器、Google 日历等一系列缤纷“全家桶”组合纷纷让原来 AOSP 中的对应功能止步不前。
可以说,只要 Google 的应用足够强大和丰富,最终就能够让 Android 彻底走向封闭。而现在,Google 的“魔爪”进一步伸向了消息通知领域。
开发者别无他选?
身为手机操作系统的半壁江山,Android 系统一直内置有 Google 官方的消息推送服务,此前为 GCM(Google Cloud Messaging),2018年被 FCM(Firebase Cloud Messaging)所替代,能够向开发者提供推送通知,包括邮件提醒、即时新闻消息、最新优惠信息、物流信息等。
长久以来,国内开发者们因为一些原因而选择摒弃 Google 的 GCM/FCM 服务,取而代之的是各个手机厂商、互联网厂商所提供的推送平台,从而带来了手机续航下降、发热等问题,这些也一直备受国内用户诟病。但近年来,随着各种系统功能的改进,Android 设备的体验性也在肉眼可见的进步。但是作为很多外国开发者的自然选择,这种情况下却往往避无可避。
针对 Google 的此番动作,Telegram-FOSS 团队就无奈表示:“(是否使用 Firebase)对于电池的使用其实并没有什么差异,但是 Google 这种极具误导性的警示(指‘耗电严重!’的警告)肯定会吓到大多数用户”,“这样子的 Android 真的是太不太开放了。”
Google 强硬作风引争议!
这件事也引起了 Reddit、Hacker News 上开发者们的热议。
@kartan:
“Google 正在强制要求 APP 开发者们使用其专有的 Firebase 后台服务来推送通知,否则这些 APP 用户们就会收到“耗电严重!”的提醒。”——Google 的这一做法明显违背了行业准则,我很好奇它未来会为此付出多少罚款。但是,更有趣的是,未来 Google 因为此举在竞争中获得的金额将会更高,相比来看还是赚了!微软(以及可能还有其他人)还不快来学学?
@soulofmischief:
针对楼上的观点,我有不同的看法。
能算得上 Google 竞争对手的不就是苹果的 iOS 系统吗?Hacker News 上的一众用户们不是很喜欢一遍又一遍地重复“噢它是多么令人惊奇!”、“它使用的电量真少!”等等溢美之词——而究根到底,iOS 能做到这一点不就是因为它不允许应用程序在后台运行除 APNS 之外的其他任何东西吗?甚至包括 GPL 源代码也不被允许。
这就是 Android 的竞争对手——一个完全封锁的操作系统,无法提供任何类型的 GPL 代码。而每次它想要为开发人员提供更多的自由时,就会在市场上遭受不小的损失,因为开发者们会反过来嘲笑 iOS 系统是如何允许他们的应用程序开发人员耗尽电池和访问数据的。
那么,站着说话不腰疼的你希望 Google 怎么做?
@ddrager:
其实这已经发生了有一段时间了。
我们之前曾尝试创建过一个基于 MQTT 的推送通知系统,它也一直运作良好,但是不久前就突然出问题了!事实证明,后台的接收器服务被“杀”死了,我们发现只有通过 Google 自己的 GCM(现已转移到 Firebase 云消息传递)才是获得可靠通知的最佳方式。
我们也据可靠消息了解到,想要构建不使用 Google 服务的应用程序基本上是不可能的。
确实,正如文中所说,Google 这样做是为了最大化利用电池资源——这我完全理解。但是通过应用这些 Google 服务,开发者就不能忽视一个事实,他们会变得真正依赖并仅依赖于 Google 系统。
BTW,正如其他人所指出的那样,Firebase 库好歹是开源的不是吗?
......
那么对于 Google 的这一做法,身为开发者的你如何看待?欢迎在留言区分享你的观点。
参考链接:
https://www.reddit.com/r/freesoftware/comments/by4ipr/android_now_forces_apps_to_include_proprietary/
https://news.ycombinator.com/item?id=20145206
http://blogs.fsfe.org/torsten.grote/2013/01/03/android-sdk-is-now-proprietary-replicant-to-the-rescue/
https://tele.ofweek.com/2019-06/ART-8320510-8420-30390782.html