【CSDN 編者按】還在為維護老舊項目頭疼?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
翻譯 | 鄭麗媛
出品 | CSDN(ID:CSDNnews)
大約 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 我的項目,打造一個全新的產品。
2025 全球產品經理大會
8 月 15–16 日
北京·威斯汀酒店
2025 全球產品經理大會將匯聚互聯網大廠、AI 創業公司、ToB/ToC 實戰一線的產品人,圍繞產品設計、用戶體驗、增長運營、智能落地等核心議題,展開 12 大專題分享,洞察趨勢、拆解路徑、對話未來。
更多詳情與報名,請掃碼下方二維碼。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.