优快云 编者按】还在为维护老旧项目头疼?AI 或许是你的救星。本文作者是一位有多年 Android 开发经验的工程师,在离开原生开发多年之后,决定借助 Copilot 等 AI 开发工具,花两周时间将一个 7 年前的 Android 应用从头重写为现代架构版本。
原文链接:https://www.reddit.com/r/androiddev/comments/1lawxue/i_rewrote_my_7yearold_android_app_in_2_weeks_with/
作者 | bernaferrari
翻译 | 郑丽媛
出品 | 优快云(ID:优快云news)
大约 7 年前,我发布了一个名为 SDK Monitor 的小工具应用,用来监控设备上安装的所有应用使用的 targetSDK API 级别。当时正值 Google 开始强制推行 targetSDK 最低版本限制(现在要求至少是去年的版本),于是我的原始应用很快就变旧了。随着时间的推移,我甚至已经无法再打开 Android Studio 去维护它了——开发环境和技术体系早已焕然一新。
趁着 GitHub Copilot 的“免费无限使用”即将结束之前,我决定冲一把:看看能否借助 AI,把这个老项目重写一遍。
(项目地址:https://github.com/bernaferrari/SDKMonitor)
AI 产品爆发,但你的痛点解决了吗?8.15-16 北京威斯汀·全球产品经理大 会 PM-Summit,3000+ AI 产品人社群已就位。
直面 AI 落地难题、拆解头部案例、对接精准资源!
扫码登记信息,添加小助手进群,抢占 AI 产品下一波红利:
进群后,您将有机会得到:
· 最新、最值得关注的 AI 产品资讯及大咖洞见
· 独家视频及文章解读 AGI 时代的产品方法论及实战经验
· 不定期赠送 AI 产品干货资料和秘籍
AI 驱动的开发流程
整个重写过程用了大约两周时间。
我一开始让 AI 把每个文件都进行“现代化”重写,例如将 MainViewModel 升级为 ModernMainViewModel。等所有文件都对应完成后,我就逐步删除旧代码并替换为新版本。
虽然整个过程也不完全轻松,但要是没有 AI 的帮助,这样的工作量几乎无法想象。我主要使用 Claude Sonnet 4,原因是它响应快、生成效果好;相比之下,Gemini 2.5 Pro 虽然质量不错,但速度慢,且几乎每一行代码都加注释,显得有些冗余。
在重写过程中,我发现了很有意思的一点:早在 2018 年,Google 的 API 就在不断废弃,今天这种趋势依旧;可当年刚推出的库如 Room 和 WorkManager,现在不仅依然存在,而且还支持良好。
大模型偶尔会导入错误的库,或者忘记给图标加上 autoMirrored 属性,但总体来说,大模型基本很少再使用旧 API 或不推荐使用的 API 了。
Jetpack Compose 的发布时间点也恰到好处——既不太早(不会到处都是过时内容),也不太新(大部分 LLM 目前对像 shadcn/ui 这样的东西还比较陌生)。相比过去需要引入大量第三方库,现在除了 Google 自家的库外,我只手动引入了少数几个,比如 Coil 图像加载库。
我的开发工作流比较独特:我一边用 VS Code 与 AI 快速交互(主要用“编辑模式”迭代代码),一边用 Android Studio 写代码和调试——毕竟 VS Code 至今还没有 Kotlin 的语言服务器支持。
那么,AI 重写过后的 SDK Monitor 2.0 有哪些变化?
可以说,这是一个彻底重写的全新版本。我专注于用最新的技术,打造一个简洁、高效、实用的 App,主要亮点包括:
100% Kotlin 编写,完全采用 Jetpack Compose + Material 3 Expressive 设计语言(虽然该套件仍处于 Alpha 阶段,但我尽可能实践了其中的设计理念)。
支持动态主题切换,兼容手机、平板和折叠屏(受到 Grok App 的启发)。
新增视觉化图表,可展示 SDK 版本分布和近期应用更新情况。
自定义快速滚动条,可按首字母或 SDK 版本快速定位应用(灵感来源于 Niagara Launcher)。
支持多种语言,包括葡萄牙语、意大利语、法语、德语、日语、中文和西班牙语,由 AI 翻译完成。
为了让 AI 更好地理解上下文,我还对项目结构做了些调整,把相关的 ViewModel、界面组件等文件统一放进同一个目录(这种结构在 Web 开发中更常见)。这样我只需拖一个文件夹到 AI 的上下文窗口,它就能理解所有依赖关系。
一点个人感想
我知道,这个应用的用途非常小众,可能对大多数人都没什么帮助。不过自 2018 年以来,还是有一些用户持续使用这个工具并积极反馈 bug。
如果你觉得“这个项目挺有意思,但不适合我”,我也完全理解,毕竟我也从未将它发布到 Play Store上。一方面是因为它需要查询所有已安装应用,另一方面,是因为它本身就不是面向大众的 App。
但这个应用其实还有一个“隐藏功能”:它可以作为一个很棒的 App 模板:项目规模适中、不依赖于网络、便于定制。你可以 Fork 它,然后在此基础上构建全新的项目。无论是 ViewModel 架构、Hilt 依赖注入,还是 Jetpack 组件的广泛使用,都能为你节省不少时间——要知道, 目前Google连个官方的 WorkManager 示例模板都没有。
说实话,我早就不是 Android 开发者了——先转向了 Flutter,后面又跳进了 Web 开发。不过,这次重写项目的过程非常有趣,也让我重新燃起了对老项目的热情。
最后,我希望这篇文章能启发你,去重拾曾经的老项目、用 AI 更快地启动新项目,或者也可以干脆 Fork 我的项目,打造一个全新的产品。
推荐阅读:
爆肝一篇博客拿下OpenAI Offer!Muon作者怒揭:几乎所有优化器的论文都是“假的”
全模态序列生成式推荐终极挑战!腾讯 360 万悬赏,高校团队抢赢大厂 Offer 直通车
Transformer 在具身智能“水土不服”,大模型强≠机器人强 | 万有引力
📢 2025 全球产品经理大会
8 月 15–16 日
北京·威斯汀酒店
2025 全球产品经理大会将汇聚互联网大厂、AI 创业公司、ToB/ToC 实战一线的产品人,围绕产品设计、用户体验、增长运营、智能落地等核心议题,展开 12 大专题分享,洞察趋势、拆解路径、对话未来。
更多详情与报名,请扫码下方二维码。