
谷歌安卓應用開發(fā)困境:Java轉向Kotlin、官方庫頻繁更新帶來“破壞性變更”等
2025-06-10
99
IT之家 6 月 10 日消息,科技媒體 devclass 今天(6 月 10 日)發(fā)布博文,從軟件工程師 Ashish Bhatia 視角為切入點,一窺目前開發(fā)安卓應用的困境。該媒體稱 Bhatia 遇到的問題并非個例,而是代表性問題,是安卓應用開發(fā)所面臨挑戰(zhàn)的一個縮影。
IT之家簡要介紹下 Bhatia,他是一位經(jīng)驗豐富的軟件工程師,曾參與 Google 的 Android 安全項目,目前開發(fā)一款名為 MusicSync 的媒體應用。
這款應用使用 Java 編寫,但隨著谷歌將 Kotlin 設為首選開發(fā)語言,Java 開發(fā)者面臨困境。Bhatia 指出,在 Java 中,完全無法使用谷歌官方 UI 庫 Jetpack Compose,而依賴庫從 Java 遷移到 Kotlin 方面,常常需要復雜的解決方法,Kotlin 的協(xié)程和掛起函數(shù)更是帶來了兼容性問題。
此外,安卓官方庫的更新頻繁帶來“破壞性變更”,例如媒體庫 ExoPlayer 在 2024 年升級為 ExoPlayer v2,隨后又被 Jetpack Media3 取代,每次更新都可能導致應用崩潰。
安卓系統(tǒng)的每次大版本更新都會引入新的“破壞性變更”,尤其是在通知、存儲權限和后臺代碼執(zhí)行等方面,開發(fā)者必須不斷調整代碼以適應新規(guī)。
Bhatia 還提到,UI 設計指南的頻繁變動令人頭痛,Material 2 被 Material 3 取代,大部分文檔只針對 Kotlin,缺乏清晰的 Java 遷移指南。
更糟糕的是,第三方庫也常被棄用或停止維護,進一步加重開發(fā)負擔。開發(fā)者無法僅開發(fā)一款應用后置之不理,必須持續(xù)投入精力更新,否則應用可能因 minSdkVersion 過舊而被 Google Play 商店下架。
Bhatia 的觀點引發(fā)了廣泛共鳴。一位開發(fā)者表示,維護應用是“巨大的負擔”,每隔幾個月就必須更新以符合新政策,包括稅務信息、隱私政策和強制性 API 調整等。
另一位開發(fā)者提到,他從 2012 年起維護一款應用,在 Google Play 商店發(fā)布了 108 個版本,深感疲憊。
此外,谷歌對新應用使用 App Bundles 的要求也引發(fā)爭議,開發(fā)者需將根簽名密鑰交給谷歌,存在應用被未經(jīng)授權修改的風險。盡管有“代碼透明性”功能作為緩解措施,但許多開發(fā)者仍對此表示擔憂。
這種開發(fā)環(huán)境的摩擦顯著增加了商業(yè)應用的主導地位,因為只有它們有足夠的收入支撐開發(fā)成本,免費開源或個人愛好者的應用則更容易被放棄。
一位開發(fā)者無奈表示:“開發(fā)應用本身很簡單,但應用商店的官僚作風讓人完全不想繼續(xù),除非你是大公司?!?/p>
另一位開源 SSH 文件傳輸應用的開發(fā)者也指出,Google 的苛刻要求和商業(yè)化導向迫使許多優(yōu)質免費應用(如 Termux)退出平臺。