摘要:在软件开发领域,安卓应用开发者的困境近期再次成为热议话题。科技媒体devclass发表的一篇文章,以软件工程师Ashish Bhatia的经历为切入点,揭示了安卓应用开发面临的多重挑战。
在软件开发领域,安卓应用开发者的困境近期再次成为热议话题。科技媒体devclass发表的一篇文章,以软件工程师Ashish Bhatia的经历为切入点,揭示了安卓应用开发面临的多重挑战。
Bhatia,一位曾参与谷歌Android安全项目的资深开发者,目前正在开发名为MusicSync的媒体应用。他遇到的问题并非孤例,而是众多安卓开发者普遍面临的挑战。
MusicSync应用原本使用Java编写,但谷歌将Kotlin设为首选开发语言后,Java开发者遭遇了前所未有的困境。Bhatia指出,Java无法使用谷歌官方的UI库Jetpack Compose,而Java库迁移到Kotlin的过程复杂且充满挑战,Kotlin的协程和挂起函数更是带来了兼容性问题,使得Java开发者在安卓开发中的处境愈发艰难。
安卓官方库的频繁更新也令开发者头疼不已。例如,媒体库ExoPlayer在2024年升级为ExoPlayer v2后,又被Jetpack Media3取代。这种“破坏性变更”不仅增加了开发难度,还可能导致应用崩溃,给用户体验带来负面影响。
安卓系统的大版本更新同样带来了一系列新的挑战。通知、存储权限和后台代码执行等方面的变化,要求开发者不断调整代码以适应新规。这不仅增加了开发成本,还延长了开发周期。
UI设计指南的频繁变动也是开发者面临的一大难题。Material 2被Material 3取代,而大部分文档只针对Kotlin,缺乏清晰的Java迁移指南。这使得Java开发者在UI设计方面面临诸多不便。
第三方库的弃用或停止维护也给开发者带来了额外的负担。开发者必须持续投入精力更新应用,否则可能因minSdkVersion过旧而被Google Play商店下架。这不仅影响了开发者的积极性,也限制了应用的长期发展。
Bhatia的观点引发了广泛共鸣。一位开发者表示,维护应用已成为“巨大的负担”,每隔几个月就必须更新以符合新政策,包括税务信息、隐私政策和强制性API调整等。另一位开发者则从2012年起维护一款应用,在Google Play商店发布了108个版本,深感疲惫。
谷歌对新应用使用App Bundles的要求也引发了争议。开发者需将根签名密钥交给谷歌,这增加了应用被未经授权修改的风险。尽管谷歌提供了“代码透明性”功能作为缓解措施,但许多开发者仍对此表示担忧。
在这种开发环境下,商业应用的主导地位愈发显著。因为只有它们有足够的收入支撑开发成本,免费开源或个人爱好者的应用则更容易被放弃。一位开发者无奈表示:“开发应用本身很简单,但应用商店的官僚作风让人完全不想继续,除非你是大公司。”
另一位开源SSH文件传输应用的开发者也指出,谷歌的苛刻要求和商业化导向迫使许多优质免费应用退出平台。这不仅影响了应用的多样性,也损害了用户的利益。
来源:ITBear科技资讯