為防 Android 碎片化?Google 強迫開發者使用自有開發工具

為防 Android 碎片化?Google 強迫開發者使用自有開發工具

作者 | 郭芮

出品 | CSDN(ID:CSDNnews)

前不久,因

Android 向華為“閉源”

一事,Google 頻頻被推上風口浪尖,關於開源和操作系統的討論也不絕於耳。不過數日,近來 Google 又遭指控!不改強硬作風的 Google ,此番再次坐實了“獨斷專行”的標籤。據外媒 Reddit 報道,Google 正在強制要求 APP 開發者們使用其專有的 Firebase 後臺服務來推送通知,否則這些 APP 用戶們就會收到“耗電嚴重!”的提醒。

為防 Android 碎片化?Google 強迫開發者使用自有開發工具

不使用 Google 服務就“報錯”?!

報道表示,目前 Telegram-FOSS、riot.im 等 FOSS(Free and Open Source Software,自由及開源軟件)應用程序的消息通知功能就面臨著這一限制。具體而言就是,Google 利用其在 Android 發行版上的壟斷優勢,迫使應用程序使用其專有的 Firebase 服務來推送通知。

為防 Android 碎片化?Google 強迫開發者使用自有開發工具

但這其中卻存在一個問題,Firebase 是 Android 專有的, FOSS 應用程序使用的話必然會存在兼容適配等問題。Google 卻直言,任何不符合要求的應用——即未使用 Firebase 服務的——它們會直接向用戶發送“耗電嚴重!”的提醒。

事實上,Android 系統從來都不是完全開源的。

為防 Android 碎片化?Google 強迫開發者使用自有開發工具

逐漸封閉的 Google

Android 的“封閉”近年來有目共睹。

早在 2013 年,歐洲自由軟件基金會的 Torsten Grote 就發表過文章稱,Android SDK 並不是自由軟件,其新條款(https://developer.android.com/studio/terms)中明確列有“你可能不能複製(備份目的除外)、修改、改編、重新發行、反編譯、逆向工程、反彙編,或創造任何 SDK 部分的衍生作品”等文字——而且它的“閉源”之勢還在隨著近年來壟斷地位的持續牢固而不斷加大。

為防 Android 碎片化?Google 強迫開發者使用自有開發工具

“你必須遵守條例規定才可以使用 SDK”

眾所周知,Android 包括兩部分:一部分是 AOSP(Android Open Source Project)的代碼庫,作為 Android 的基礎;另一部分是閉源組件, 即 Google 提供的各種服務應用。

前者可為開發者提供所需信息和源代碼,創建定製的 Android 操作系統版本,將設備和配件移植到 Android 平臺,同時確保設備符合兼容性要求。多年來,Google 為了防止碎片化問題的逐漸加劇,一直通過擴充自家應用的種類,從而替換掉原來的 AOSP 組件,間接來縮減 Android 系統的開源程度。Google 搜索、Google 音樂、Google 相機、Google 鍵盤、Chrome 瀏覽器、Google 日曆等一系列繽紛“全家桶”組合紛紛讓原來 AOSP 中的對應功能止步不前。

為防 Android 碎片化?Google 強迫開發者使用自有開發工具

可以說,只要 Google 的應用足夠強大和豐富,最終就能夠讓 Android 徹底走向封閉。而現在,Google 的“魔爪”進一步伸向了消息通知領域。

為防 Android 碎片化?Google 強迫開發者使用自有開發工具

開發者別無他選?

身為手機操作系統的半壁江山,Android 系統一直內置有 Google 官方的消息推送服務,此前為 GCM(Google Cloud Messaging),2018年被 FCM(Firebase Cloud Messaging)所替代,能夠向開發者提供推送通知,包括郵件提醒、即時新聞消息、最新優惠信息、物流信息等。

長久以來,國內開發者們因為一些原因而選擇摒棄 Google 的 GCM/FCM 服務,取而代之的是各個手機廠商、互聯網廠商所提供的推送平臺,從而帶來了手機續航下降、發熱等問題,這些也一直備受國內用戶詬病。但近年來,隨著各種系統功能的改進,Android 設備的體驗性也在肉眼可見的進步。但是作為很多外國開發者的自然選擇,這種情況下卻往往避無可避。

針對 Google 的此番動作,Telegram-FOSS 團隊就無奈表示:“(是否使用 Firebase)對於電池的使用其實並沒有什麼差異,但是 Google 這種極具誤導性的警示(指‘耗電嚴重!’的警告)肯定會嚇到大多數用戶”,“這樣子的 Android 真的是太不太開放了。”

為防 Android 碎片化?Google 強迫開發者使用自有開發工具

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

相關推薦

推薦中...