為什麼VS Code能成為Android開發者的新寵兒
# 優化 Android 開發流程:VS Code 幾個常見但實用的小功能
## VS Code 在行動端開發的出現
微軟做的 Visual Studio Code,好像剛推出沒多久就有一堆人在用。雖然一開始只是個還算輕巧、跨平台的編輯器,後來支援愈來愈多語言跟框架。有趣的是,這款工具原本也不是為了手機 App 量身打造,但現在不少寫 Android 的人偶爾會把它當成另一種選擇。就連「Visual Studio code for Android」這樣的說法,也偶爾在社群裡看到。畢竟,有些人覺得比起更重型的大 IDE,用 VS Code 編輯程式碼時跑起來明顯比較順,也沒什麼負擔。
## 為什麼越來越多人考慮 VS Code?
Android 開發圈子裡面,VS Code 熱度這幾年大概有漸漸升高。有些工程師觀察到,它不只輕巧,還很容易客製化;各種能讓寫 Android 較方便的外掛也陸續冒出來。如果純粹想專心寫程式,不需要太多圖形介面或複雜功能,它內建的語法高亮、類似 IntelliSense 的提示機制,可能就夠用了。另外,不論你是 Windows、macOS 還是 Linux 用戶,只要裝好 VS Code 基本都能跑得動。有時候只是想換個環境,也許不用再回頭去安裝那些較大型的 IDE。
## 準備基本開發環境
如果真要在 Visual Studio Code 上弄一套可以寫 Android 的工作空間,其實步驟也沒有想像中那麼複雜。不過細節總是稍微有點瑣碎——畢竟每台電腦狀況都不太一樣。從安裝主程式到設定相關工具,大致上順序差不了多少,但可能會遇上一兩項小問題需要查一下文件。
## 快速入門:怎麼開始用 VS Code 寫 Android
先說第一步,其實就是去官網下載 Visual Studio Code,不管你是哪種作業系統都有對應版本。安裝方式嘛,一般照著指示一步一步走下去,大概不會遇到太離譜的狀況。接下來,如果準備要碰 Android 開發,那 Java 開發工具包(JDK)基本上必須有。不管你選 Oracle 的還是 OpenJDK,好像效果差異沒那麼大,只要路徑(JAVA_HOME)設對了通常都能順利運作。不過這部份有時候初學者容易卡住,要記得檢查一下環境變數設定是不是漏掉什麼細節。
## VS Code 在行動端開發的出現
微軟做的 Visual Studio Code,好像剛推出沒多久就有一堆人在用。雖然一開始只是個還算輕巧、跨平台的編輯器,後來支援愈來愈多語言跟框架。有趣的是,這款工具原本也不是為了手機 App 量身打造,但現在不少寫 Android 的人偶爾會把它當成另一種選擇。就連「Visual Studio code for Android」這樣的說法,也偶爾在社群裡看到。畢竟,有些人覺得比起更重型的大 IDE,用 VS Code 編輯程式碼時跑起來明顯比較順,也沒什麼負擔。
## 為什麼越來越多人考慮 VS Code?
Android 開發圈子裡面,VS Code 熱度這幾年大概有漸漸升高。有些工程師觀察到,它不只輕巧,還很容易客製化;各種能讓寫 Android 較方便的外掛也陸續冒出來。如果純粹想專心寫程式,不需要太多圖形介面或複雜功能,它內建的語法高亮、類似 IntelliSense 的提示機制,可能就夠用了。另外,不論你是 Windows、macOS 還是 Linux 用戶,只要裝好 VS Code 基本都能跑得動。有時候只是想換個環境,也許不用再回頭去安裝那些較大型的 IDE。
## 準備基本開發環境
如果真要在 Visual Studio Code 上弄一套可以寫 Android 的工作空間,其實步驟也沒有想像中那麼複雜。不過細節總是稍微有點瑣碎——畢竟每台電腦狀況都不太一樣。從安裝主程式到設定相關工具,大致上順序差不了多少,但可能會遇上一兩項小問題需要查一下文件。
## 快速入門:怎麼開始用 VS Code 寫 Android
先說第一步,其實就是去官網下載 Visual Studio Code,不管你是哪種作業系統都有對應版本。安裝方式嘛,一般照著指示一步一步走下去,大概不會遇到太離譜的狀況。接下來,如果準備要碰 Android 開發,那 Java 開發工具包(JDK)基本上必須有。不管你選 Oracle 的還是 OpenJDK,好像效果差異沒那麼大,只要路徑(JAVA_HOME)設對了通常都能順利運作。不過這部份有時候初學者容易卡住,要記得檢查一下環境變數設定是不是漏掉什麼細節。
原文出處: https://www.kantti.net/tw/column/28/optimize-android-vscode-key-features
五分鐘搞定VS Code的Android開發環境設定
步驟三差不多就是在安卓開發者網站裡面找到那個命令列工具,然後下載下來,好像還得自己手動把壓縮檔解開放到某個資料夾裡,這種事有人會選一個叫Android/sdk的路徑,也有些人可能隨便丟哪兒。接著那環境變數什麼的也跑不了,這時候大致要把剛才那個sdk目錄位置加進PATH,不過有的人還會特地再往裡面找一下tools/bin,順便也丟進去。ANDROID_HOME也是要設成你sdk的地方,大概是這樣。
說到Visual Studio Code,有時候大家只當它是寫程式的小工具,但實際上功能多到讓人不太好記住——怎麼說呢?搞Android專案時,用VS Code可以連接不少小東西,比方說專案管理或是輔助修正bug之類,好像比純粹打字舒服一些。不過每個人的習慣都不一定,有些人偏好用vscode for android相關套件,理由嘛…看起來主要因為它整合了各種能提升效率的小功能。
講到編輯程式碼,其實這軟體自帶IntelliSense,就是那種根據你打出來的內容猜你接下來想幹嘛的提示工具,比如函數參數、型別或模組引入時跳出建議清單。有段時間我印象中遇過它突然沒反應,後來重啟又好了。還有改名、抽取方法那些重構操作,不用自己慢慢改,可以直接點兩下就完成,有時省了不少麻煩。語法高亮這件事基本不用擔心,Java、Kotlin差不多都能支援。而且如果臨時忘了變數在哪邊定義,也能馬上跳過去查一下;找全部被引用的位置也挺快的,不用一直Ctrl+F亂搜。
有趣的是VS Code允許你自訂片段(snippets),就是複製貼上常見結構,比如迴圈或if判斷那些模板,本身內建的不少,但對於想更改口味的人,也可以自己造一份新的。但不是每次都會派上用場,看需求啦。
至於Git,那算是編輯器裡頭的一部分,可以直接做版本控制。例如提交修改、拉回遠端資料或者推送更新,都不用離開VS Code畫面。有些人會用分支管理功能切換不同分支或者新建一份新的工作流,流程簡化了一點點,不見得人人都需要,但對某些情境倒是挺方便的。整體看起來,大致就是這樣,各人使用狀況可能差異頗大。
說到Visual Studio Code,有時候大家只當它是寫程式的小工具,但實際上功能多到讓人不太好記住——怎麼說呢?搞Android專案時,用VS Code可以連接不少小東西,比方說專案管理或是輔助修正bug之類,好像比純粹打字舒服一些。不過每個人的習慣都不一定,有些人偏好用vscode for android相關套件,理由嘛…看起來主要因為它整合了各種能提升效率的小功能。
講到編輯程式碼,其實這軟體自帶IntelliSense,就是那種根據你打出來的內容猜你接下來想幹嘛的提示工具,比如函數參數、型別或模組引入時跳出建議清單。有段時間我印象中遇過它突然沒反應,後來重啟又好了。還有改名、抽取方法那些重構操作,不用自己慢慢改,可以直接點兩下就完成,有時省了不少麻煩。語法高亮這件事基本不用擔心,Java、Kotlin差不多都能支援。而且如果臨時忘了變數在哪邊定義,也能馬上跳過去查一下;找全部被引用的位置也挺快的,不用一直Ctrl+F亂搜。
有趣的是VS Code允許你自訂片段(snippets),就是複製貼上常見結構,比如迴圈或if判斷那些模板,本身內建的不少,但對於想更改口味的人,也可以自己造一份新的。但不是每次都會派上用場,看需求啦。
至於Git,那算是編輯器裡頭的一部分,可以直接做版本控制。例如提交修改、拉回遠端資料或者推送更新,都不用離開VS Code畫面。有些人會用分支管理功能切換不同分支或者新建一份新的工作流,流程簡化了一點點,不見得人人都需要,但對某些情境倒是挺方便的。整體看起來,大致就是這樣,各人使用狀況可能差異頗大。

讓寫程式碼飛起來的VS Code智能編輯功能
如果你在用 vscode for android 處理合併衝突,或許會發現它內建的視覺化比對工具還挺直觀的——不確定是不是每個人都這麼覺得,但有些開發者會說,這種把現有變動和外來更動直接並排顯示的方式,讓抉擇「保留哪邊」時少了點煩惱。要接受誰、直接合併,都能在編輯器裡完成,大概省去了來回切換工具的麻煩。
說到開發流程,有些人會注意到 VS Code 裡頭那個終端機。有人可能常拿它跑 git 指令、寫腳本,也有時候為了和系統 shell 互動一下。搞 Android 的朋友,用這個來執行 Gradle 指令、打開模擬器或丟 adb 命令,好像也算方便。不過不是每次都順手啦,有時候還是得根據情境調整。
Debug 工具方面,其實 VS Code 裡提供的功能算是蠻多樣的——像斷點設定、互動式主控台、變數檢查、呼叫堆疊等等都能用。如果你手上那個 launch.json 配置好了,配合 Java Debugger 擴充套件,把 Java 或 Kotlin 的 Android App 拿進來除錯應該沒太大問題。不過「無縫」體驗嘛……部分人可能需要再微調環境才能真的順利。
然後 VS Code 上有好幾款針對 Android 的擴充套件,比方說什麼模擬器管理員(Android Emulator Manager)、ADB Interface 那類型。有了它們,在 VS Code 就可以操作裝置清單、安裝 APK 檔案之類,也許不用一直跳到外部工具去點選,不過要不要裝還是看習慣。
工作區自訂這塊,有的人會覺得蠻實用。VS Code 允許你把特定專案的設定保存下來,對於同時處理不同案子,或者團隊多人協作時,要維持環境一致性,好像頗受歡迎。但偶爾也聽說有小狀況,需要自己額外修補一下。
至於提升效率的方法,不只是靠基本功能啦。有不少人認為 VS Code 吸引人的地方之一,就是那一大票各路擴充套件。這些小工具可以加進新功能,也經常讓開發流程比較滑順。講到 Android 開發圈,不少人推薦幾款熱門插件,比方「Android for VS Code (Ayu)」——它主要整合了一些必要的小工具,還弄出一種專門針對 Android 項目的視角模式,看起來是讓某些使用者少摸索一點。不過適不適合自己的需求,大致還得親自體驗才知道。
總之,上面提到那些做法跟功能,在不同場景下效果可能不太一樣,有的人覺得很方便,也有人反映必須再調整才順手。
說到開發流程,有些人會注意到 VS Code 裡頭那個終端機。有人可能常拿它跑 git 指令、寫腳本,也有時候為了和系統 shell 互動一下。搞 Android 的朋友,用這個來執行 Gradle 指令、打開模擬器或丟 adb 命令,好像也算方便。不過不是每次都順手啦,有時候還是得根據情境調整。
Debug 工具方面,其實 VS Code 裡提供的功能算是蠻多樣的——像斷點設定、互動式主控台、變數檢查、呼叫堆疊等等都能用。如果你手上那個 launch.json 配置好了,配合 Java Debugger 擴充套件,把 Java 或 Kotlin 的 Android App 拿進來除錯應該沒太大問題。不過「無縫」體驗嘛……部分人可能需要再微調環境才能真的順利。
然後 VS Code 上有好幾款針對 Android 的擴充套件,比方說什麼模擬器管理員(Android Emulator Manager)、ADB Interface 那類型。有了它們,在 VS Code 就可以操作裝置清單、安裝 APK 檔案之類,也許不用一直跳到外部工具去點選,不過要不要裝還是看習慣。
工作區自訂這塊,有的人會覺得蠻實用。VS Code 允許你把特定專案的設定保存下來,對於同時處理不同案子,或者團隊多人協作時,要維持環境一致性,好像頗受歡迎。但偶爾也聽說有小狀況,需要自己額外修補一下。
至於提升效率的方法,不只是靠基本功能啦。有不少人認為 VS Code 吸引人的地方之一,就是那一大票各路擴充套件。這些小工具可以加進新功能,也經常讓開發流程比較滑順。講到 Android 開發圈,不少人推薦幾款熱門插件,比方「Android for VS Code (Ayu)」——它主要整合了一些必要的小工具,還弄出一種專門針對 Android 項目的視角模式,看起來是讓某些使用者少摸索一點。不過適不適合自己的需求,大致還得親自體驗才知道。
總之,上面提到那些做法跟功能,在不同場景下效果可能不太一樣,有的人覺得很方便,也有人反映必須再調整才順手。
版本控制不用切視窗!內建Git這樣用最順手
有時候,說到 VS Code 裡面那些跟 Android 開發有關的外掛,好像一下子就讓人想起那個被不少人提過的 Java 擴充套件包。這一類擴充功能,大致上會把一些比較常見的工具都拉進來,像是 Red Hat 的 Java 語言支援、還有 Debugger for Java、Java Test Runner 跟 Maven 這幾個。聽說在某些情境下,如果是在處理以 Java 為主軸的 Android 專案,這些元件算是滿常派上用場的。
話題偶爾會飄到 Kotlin。近年來,用 Kotlin 搞 Android 的工程師好像變多了,也許快佔了將近一半?Kotlin 的語言擴充其實不只提供語法高亮,還會給你自動補全、甚至除錯等協助,但具體多少功能得看情況,有時候難免也卡卡的。
然後那個 Gradle 支援,不知道大家是不是都曾經在寫 build script 時遇過點小困擾?VS Code 上面也有能加強 Gradle 編輯體驗的小工具,大概可以做到簡單指令輔助和腳本管理。不過詳細怎麼用,每次版本更新可能又不太一樣。
ADB 的相關延伸工具也是零零星星地出現。有些朋友覺得直接從編輯器裡頭去連接 Android 裝置或模擬器,比較方便吧。雖然穩定性偶爾還是有人反映要再觀察。
談到模擬器,其實 VS Code 自己並不帶什麼很正式的虛擬設備管理員,但市面上倒是有人搞出外掛來讓你切換或操作不同裝置型號,有沒有完全取代傳統 AVD 工具,大概還得視專案複雜度和需求而定。
GitLens 這種加強版 Git 工具,在開發圈子裡滿多人聊過。它大約能讓原本內建 Git 那些視覺化和操作方式更加豐富一點,對於版本控管有額外需求的人,也許會試著裝看看。但到底值不值得長期依賴,各家見仁見智。
至於界面的客製化,不少同事提過 Material Theme 或 Night Owl 這類主題包,用久了據說眼睛壓力比較低一點。當然啦,每個人審美跟習慣差距可能也蠻大的,有的人換來換去最後還是回歸預設風格。總之,VS Code 跟 Android 開發之間,看似搭配起來挺靈活,只是細節偶爾要多摸索幾下才順手。
話題偶爾會飄到 Kotlin。近年來,用 Kotlin 搞 Android 的工程師好像變多了,也許快佔了將近一半?Kotlin 的語言擴充其實不只提供語法高亮,還會給你自動補全、甚至除錯等協助,但具體多少功能得看情況,有時候難免也卡卡的。
然後那個 Gradle 支援,不知道大家是不是都曾經在寫 build script 時遇過點小困擾?VS Code 上面也有能加強 Gradle 編輯體驗的小工具,大概可以做到簡單指令輔助和腳本管理。不過詳細怎麼用,每次版本更新可能又不太一樣。
ADB 的相關延伸工具也是零零星星地出現。有些朋友覺得直接從編輯器裡頭去連接 Android 裝置或模擬器,比較方便吧。雖然穩定性偶爾還是有人反映要再觀察。
談到模擬器,其實 VS Code 自己並不帶什麼很正式的虛擬設備管理員,但市面上倒是有人搞出外掛來讓你切換或操作不同裝置型號,有沒有完全取代傳統 AVD 工具,大概還得視專案複雜度和需求而定。
GitLens 這種加強版 Git 工具,在開發圈子裡滿多人聊過。它大約能讓原本內建 Git 那些視覺化和操作方式更加豐富一點,對於版本控管有額外需求的人,也許會試著裝看看。但到底值不值得長期依賴,各家見仁見智。
至於界面的客製化,不少同事提過 Material Theme 或 Night Owl 這類主題包,用久了據說眼睛壓力比較低一點。當然啦,每個人審美跟習慣差距可能也蠻大的,有的人換來換去最後還是回歸預設風格。總之,VS Code 跟 Android 開發之間,看似搭配起來挺靈活,只是細節偶爾要多摸索幾下才順手。

終端機與除錯工具整合讓你開發效率翻倍
有時候,開發 Android 應用程式時,可能會遇到重複性的程式碼。這種情形下,自訂片段功能會派上用場,像是那些 UI 的小細節或生命週期的寫法,大概都可以透過一點巧思省下不少時間。其實,也有人會說這些功能在團隊裡挺受歡迎,只要花點心思調整成適合自己的習慣就好。
設定部分,不少人應該注意過 VS Code 可以針對個人還有專案做一些客製化。大致來看,一種是全域型的(只要打開哪個專案都會套用),另一種則比較偏向專案本身,這類設定偶爾會被大家拿來共享。不過也不是說兩者界線很明確,有時候還得自己摸索一下。
鍵盤快速鍵也是一門學問,有些朋友覺得只要稍微改一改常用指令的位置,效率就能提升不少。如果想把這些自訂內容帶著走,好像也能匯出再匯入到另一台電腦,但詳細步驟偶爾需要查一下文件才找得到。
講到擴充套件,其實很多人都會在 VS Code 裝上一堆外掛。有聽說 Flutter 跟 Dart 相關的插件對跨平台(像手機、網頁甚至桌面)需求蠻有幫助的,尤其是在元件跟測試方面支援算豐富。API 測試工具也有人推薦,例如某款 REST Client,可以直接在編輯器裡送出請求,看回應結果——對於後端溝通測試好像挺方便。不過如果你碰的是比較偏圖形類型的 App,有支援 Shader 語言語法高亮的小工具似乎也值得考慮。有趣的是,有些人在維護大型專案時,靠顏色標示括號配對來減少閱讀壓力,那種所謂 Bracket Pair Colorizer 擴充功能就派得上用場了。當然,不一定每個人都覺得非裝不可,就看需求了。
雖然 VS Code 原本並不是為 Android 開發量身打造,但經過一番設定和插件加持後,其實已經能處理日常建置與部署工作。有些場合下,它表現算穩定,可是想完全取代傳統 IDE 還是有點距離。不過某些開發者倒認為,如果只是一般規模、流程沒那麼複雜的專案,用起來其實已經綽綽有餘。
設定部分,不少人應該注意過 VS Code 可以針對個人還有專案做一些客製化。大致來看,一種是全域型的(只要打開哪個專案都會套用),另一種則比較偏向專案本身,這類設定偶爾會被大家拿來共享。不過也不是說兩者界線很明確,有時候還得自己摸索一下。
鍵盤快速鍵也是一門學問,有些朋友覺得只要稍微改一改常用指令的位置,效率就能提升不少。如果想把這些自訂內容帶著走,好像也能匯出再匯入到另一台電腦,但詳細步驟偶爾需要查一下文件才找得到。
講到擴充套件,其實很多人都會在 VS Code 裝上一堆外掛。有聽說 Flutter 跟 Dart 相關的插件對跨平台(像手機、網頁甚至桌面)需求蠻有幫助的,尤其是在元件跟測試方面支援算豐富。API 測試工具也有人推薦,例如某款 REST Client,可以直接在編輯器裡送出請求,看回應結果——對於後端溝通測試好像挺方便。不過如果你碰的是比較偏圖形類型的 App,有支援 Shader 語言語法高亮的小工具似乎也值得考慮。有趣的是,有些人在維護大型專案時,靠顏色標示括號配對來減少閱讀壓力,那種所謂 Bracket Pair Colorizer 擴充功能就派得上用場了。當然,不一定每個人都覺得非裝不可,就看需求了。
雖然 VS Code 原本並不是為 Android 開發量身打造,但經過一番設定和插件加持後,其實已經能處理日常建置與部署工作。有些場合下,它表現算穩定,可是想完全取代傳統 IDE 還是有點距離。不過某些開發者倒認為,如果只是一般規模、流程沒那麼複雜的專案,用起來其實已經綽綽有餘。
這些外掛裝了沒?Android開發必備VS Code擴充套件
好像有些人總會把專案的檔案塞得亂七八糟,這麼一來,之後想找個東西就像在雜物堆裡翻箱倒櫃。據說,如果能把原始碼、資源和素材都分開收納,每次看起來就比較不頭痛。畢竟維護起來,大概也輕鬆點。
然後settings.gradle和build.gradle這兩份檔案,不知道是不是大家都曾經改錯過?反正只要確定settings那邊列了所有模組,還有每個模組自己的build設定,像依賴、SDK版本那些,好像就比較少出怪問題。有時候細節搞不清楚,一下漏了什麼依賴,或是哪個地方填錯,常常就是卡很久。
其實,有些人習慣用環境變數藏敏感資料,比如API金鑰什麼的;聽說這樣做,可以讓專案搬家或是切換不同環境時不用一直調整設定,也稍微安全一點。不過細節還是要靠自己注意。
對了,Java或者Kotlin的版本,有段時間我朋友因為本機跟CI/CD上的JDK差太多,所以光版本問題搞到快放棄。後來聽工程師說,只要確保各台電腦大致一致,就比較少遇到那種兼容性煩惱。雖然偶爾還是會有例外啦,但大致上管用。
然後settings.gradle和build.gradle這兩份檔案,不知道是不是大家都曾經改錯過?反正只要確定settings那邊列了所有模組,還有每個模組自己的build設定,像依賴、SDK版本那些,好像就比較少出怪問題。有時候細節搞不清楚,一下漏了什麼依賴,或是哪個地方填錯,常常就是卡很久。
其實,有些人習慣用環境變數藏敏感資料,比如API金鑰什麼的;聽說這樣做,可以讓專案搬家或是切換不同環境時不用一直調整設定,也稍微安全一點。不過細節還是要靠自己注意。
對了,Java或者Kotlin的版本,有段時間我朋友因為本機跟CI/CD上的JDK差太多,所以光版本問題搞到快放棄。後來聽工程師說,只要確保各台電腦大致一致,就比較少遇到那種兼容性煩惱。雖然偶爾還是會有例外啦,但大致上管用。

打造你的專屬開發環境:主題與快捷鍵設定技巧
VS Code 裡頭要用 Gradle,有時候方法還挺彈性的。像是那些任務(有的人叫它工作),大致上都能直接在編輯器的指令面板裡呼叫,或者乾脆在內建終端機那邊敲個命令就行。平常最常見的大概就是什麼 assembleDebug 去組出測試包、或 clean 清一下殘留資料夾之類的。不過這些步驟其實也沒幾種特別固定,每個人習慣不太一樣。
依稀記得管理套件庫會讓專案維護比較順一點,畢竟如果每次東西都亂丟、舊版新版本混著來,後續很容易哪裡出錯又找不到原因。有些人偶爾會忘了刪掉沒再用的函式庫,結果專案越做越肥,反正就是盡量讓相依關係清楚簡單比較好。
然後,那個 Gradle Wrapper,好像大家幾乎都說最好養成使用的習慣。因為只要團隊裡有人電腦環境跟主線不同步,就算功能沒大變,也可能跑起來怪怪的;有聽說自動化流程也是靠它才能維持大家腳本一致性,不然偶而還會撞到莫名的小 bug。
話說回來,在 VS Code 裡頭裝一些額外工具,其實也無妨。例如有那種語法提示和補全功能的擴充套件,大約能讓你寫 Gradle 配置檔時少掉不少手動查詢細節。雖然不是每個人都非得安裝不可,但遇到複雜情境應該還蠻能幫忙。
整體來看,用這些方式操作,大致上可減輕開發負擔,只是到底怎麼安排才適合自己團隊,可能還是要多嘗試幾輪才知道吧。有些細節現在想起來不是那麼確定,不過大部分情境下,上述方法多少派得上用場。
依稀記得管理套件庫會讓專案維護比較順一點,畢竟如果每次東西都亂丟、舊版新版本混著來,後續很容易哪裡出錯又找不到原因。有些人偶爾會忘了刪掉沒再用的函式庫,結果專案越做越肥,反正就是盡量讓相依關係清楚簡單比較好。
然後,那個 Gradle Wrapper,好像大家幾乎都說最好養成使用的習慣。因為只要團隊裡有人電腦環境跟主線不同步,就算功能沒大變,也可能跑起來怪怪的;有聽說自動化流程也是靠它才能維持大家腳本一致性,不然偶而還會撞到莫名的小 bug。
話說回來,在 VS Code 裡頭裝一些額外工具,其實也無妨。例如有那種語法提示和補全功能的擴充套件,大約能讓你寫 Gradle 配置檔時少掉不少手動查詢細節。雖然不是每個人都非得安裝不可,但遇到複雜情境應該還蠻能幫忙。
整體來看,用這些方式操作,大致上可減輕開發負擔,只是到底怎麼安排才適合自己團隊,可能還是要多嘗試幾輪才知道吧。有些細節現在想起來不是那麼確定,不過大部分情境下,上述方法多少派得上用場。
從編譯到部署:用VS Code搞定完整Android專案流程
直接在 VS Code 裡頭除錯 Android App,其實步驟聽起來好像不會太複雜,不過有些小地方得留意。大概有不少人會先裝那幾個什麼 Java 除錯器還有 Android 擴充套件,然後就是去調整一份叫 launch.json 的檔案,這東西主要是讓你設定 JDK、Android SDK 路徑之類的細節啦。有些人可能常忘了指定正確的 Activity 或主程式,結果開不起來,這倒是滿容易發生的。
如果要說除錯功能,最基本的應該就屬於斷點功能吧?通常大家都習慣在編輯器旁邊直接點一下行號就能設置斷點,到時候程式跑到那邊就會停下來。你要看變數啊、算算表達式、瀏覽呼叫堆疊之類的,也蠻方便——只是偶爾可能要多試幾次才抓得到問題在哪裡。
然後 Logcat 部分,有的人用外部工具,有的人則直接在 VS Code 裡面用內建終端機或某些插件觀察訊息流。Logcat 吐出來的不只 App 的資料,有時還混著系統層面的輸出,所以看的時候可能會混雜一些非預期資訊。不少情況下,你得手動過濾才比較清楚看到自己想查的訊息。
至於檢查變數與堆疊追蹤,VS Code 的除錯面板其實還蠻直觀,但每次執行狀態不同,看資料也會有點落差。有時候光靠這樣也未必馬上就能搞懂問題,需要反覆嘗試和比對。
另外,如果碰到需要遠端除錯,比如說實體手機測試,大致上流程多半是把手機調成 USB 除錯模式,再接到電腦上。這個步驟偶爾遇到連線不穩或者權限彈窗卡住,也不是沒發生過,只能說大部分情境下操作還算順利,但也有人遇過一些無法解釋的小插曲。
如果要說除錯功能,最基本的應該就屬於斷點功能吧?通常大家都習慣在編輯器旁邊直接點一下行號就能設置斷點,到時候程式跑到那邊就會停下來。你要看變數啊、算算表達式、瀏覽呼叫堆疊之類的,也蠻方便——只是偶爾可能要多試幾次才抓得到問題在哪裡。
然後 Logcat 部分,有的人用外部工具,有的人則直接在 VS Code 裡面用內建終端機或某些插件觀察訊息流。Logcat 吐出來的不只 App 的資料,有時還混著系統層面的輸出,所以看的時候可能會混雜一些非預期資訊。不少情況下,你得手動過濾才比較清楚看到自己想查的訊息。
至於檢查變數與堆疊追蹤,VS Code 的除錯面板其實還蠻直觀,但每次執行狀態不同,看資料也會有點落差。有時候光靠這樣也未必馬上就能搞懂問題,需要反覆嘗試和比對。
另外,如果碰到需要遠端除錯,比如說實體手機測試,大致上流程多半是把手機調成 USB 除錯模式,再接到電腦上。這個步驟偶爾遇到連線不穩或者權限彈窗卡住,也不是沒發生過,只能說大部分情境下操作還算順利,但也有人遇過一些無法解釋的小插曲。

Gradle在VS Code中的進階玩法大公開
自動化,大概在這幾年裡,慢慢變成許多開發團隊討論的重點。其實現在軟體專案要做到順暢、效率提升,蠻多人會考慮靠著自動化來減少人工操作,特別是在編輯器像是 Visual Studio Code(VS Code)裡頭,它本身雖然偏向是寫程式用的工具,但好像也能和其他各種自動化服務搭配,讓工作流程稍微流暢一點。說到持續整合跟持續部署(CI/CD),這些方法主要就是把一些流程自動串起來,有人覺得對交付速度有一定幫助。
在選擇 CI/CD 平台時候,好像網路上比較常被提到的名字例如 Jenkins、Travis CI、GitHub Actions 或者 GitLab CI 等等,不同平台或團隊需求不太一樣,所以選擇也跟著浮動。有些人在用 GitHub,有些則是在 GitLab…反正大致上都能找到配套方案。
開始設定這類自動化流程時,多數情況下需要在專案根目錄放進一個什麼 yaml 或 json 檔,內容就記錄步驟:先把程式碼組裝起來打包(有時候叫 build),然後跑各種測試——單元測試啊、整合測試之類的,也有人加一些自己想驗證的小東西。至於部署嘛,有人會直接推到正式環境,有些則先丟到測試機器再說。順序偶爾換一下也沒關係,其實做法並不只有一條路。感覺每個階段都有一些自由調整空間,就看團隊風格吧。
話說回來,CI/CD 這類技術聽起來很專業,但其實大部分場景只要工具稍微學一下,多半能找到適合現有流程的方法。不過效果如何,好像還是得看現場狀況與人的習慣,不見得每次都如預期那麼理想。
在選擇 CI/CD 平台時候,好像網路上比較常被提到的名字例如 Jenkins、Travis CI、GitHub Actions 或者 GitLab CI 等等,不同平台或團隊需求不太一樣,所以選擇也跟著浮動。有些人在用 GitHub,有些則是在 GitLab…反正大致上都能找到配套方案。
開始設定這類自動化流程時,多數情況下需要在專案根目錄放進一個什麼 yaml 或 json 檔,內容就記錄步驟:先把程式碼組裝起來打包(有時候叫 build),然後跑各種測試——單元測試啊、整合測試之類的,也有人加一些自己想驗證的小東西。至於部署嘛,有人會直接推到正式環境,有些則先丟到測試機器再說。順序偶爾換一下也沒關係,其實做法並不只有一條路。感覺每個階段都有一些自由調整空間,就看團隊風格吧。
話說回來,CI/CD 這類技術聽起來很專業,但其實大部分場景只要工具稍微學一下,多半能找到適合現有流程的方法。不過效果如何,好像還是得看現場狀況與人的習慣,不見得每次都如預期那麼理想。
自動化神器!CI/CD流程直接整合進你的編輯器
大概有不少工程師平時都希望能讓整個開發流程更順手,尤其是像Android專案那樣。有人說現在很多人會用Gradle之類的工具來處理建置,不過好像也不是每家團隊都弄得很複雜,有些人只是把gradlew腳本改一改,碰到不同環境或版本要出包才去調。聽說自動化測試也是挺常見的,有的人會在build script裡塞JUnit或Espresso這種框架,然後又有人覺得光這樣還不夠,就乾脆加上什麼Husky,設定個pre-commit hook,好像每次送出前就要跑一下測試——雖然偶爾也會漏掉。
講到部署這一塊,其實自動推送到Google Play Beta、Firebase App Distribution之類的平台,在某些團隊中已經變成習慣。有些公司甚至寫了幾條腳本放進CI/CD流程裡,只要測試通過,大致上就能直接丟到正式或測試環境,也省了不少手動操作。
另外,有關程式碼品質檢查,像SonarQube、ESLint還是Checkstyle這些靜態分析工具,好像越來越多人在用。有團隊會讓它們自動跑,只要有新的commit push上去就檢查一次。不過,具體怎麼設計還是看各自需求吧。
現在通知系統也是五花八門,有人連Slack、電子郵件都接起來,build有結果就跳通知;有時候還能靠VS Code裝個小外掛或者弄webhook,在編輯器裡面直接收到訊息。這種做法聽起來很方便,但也不是誰都需要。
文件和版本號管理這事兒,大致上可以靠Javadoc生成說明文件。至於版本號嘛,有一些語意化的工具,可以根據你改了哪些地方,自動幫你升級主次版,不過大家實際用不用得那麼細緻,好像沒什麼定論。
其實VS Code近年被滿多人拿來寫Android app,用起來比傳統IDE輕巧一些。一部分開發者覺得它擴充性強,又能根據自己習慣調整介面,而且外掛生態也算豐富。對於寫Java跟Kotlin的工程師,只要搞定SDK路徑和相關套件管理,大致上開發體驗不太輸給Android Studio。Live Share協作功能跟Git整合也是亮點之一——團隊合作時,比較容易同步進度,但總歸來說,每個人的感受可能差距蠻大。有些場景下VS Code確實帶來不少便利,只是遇到特殊需求時,也許還是得回頭找其他工具配合才行吧。
講到部署這一塊,其實自動推送到Google Play Beta、Firebase App Distribution之類的平台,在某些團隊中已經變成習慣。有些公司甚至寫了幾條腳本放進CI/CD流程裡,只要測試通過,大致上就能直接丟到正式或測試環境,也省了不少手動操作。
另外,有關程式碼品質檢查,像SonarQube、ESLint還是Checkstyle這些靜態分析工具,好像越來越多人在用。有團隊會讓它們自動跑,只要有新的commit push上去就檢查一次。不過,具體怎麼設計還是看各自需求吧。
現在通知系統也是五花八門,有人連Slack、電子郵件都接起來,build有結果就跳通知;有時候還能靠VS Code裝個小外掛或者弄webhook,在編輯器裡面直接收到訊息。這種做法聽起來很方便,但也不是誰都需要。
文件和版本號管理這事兒,大致上可以靠Javadoc生成說明文件。至於版本號嘛,有一些語意化的工具,可以根據你改了哪些地方,自動幫你升級主次版,不過大家實際用不用得那麼細緻,好像沒什麼定論。
其實VS Code近年被滿多人拿來寫Android app,用起來比傳統IDE輕巧一些。一部分開發者覺得它擴充性強,又能根據自己習慣調整介面,而且外掛生態也算豐富。對於寫Java跟Kotlin的工程師,只要搞定SDK路徑和相關套件管理,大致上開發體驗不太輸給Android Studio。Live Share協作功能跟Git整合也是亮點之一——團隊合作時,比較容易同步進度,但總歸來說,每個人的感受可能差距蠻大。有些場景下VS Code確實帶來不少便利,只是遇到特殊需求時,也許還是得回頭找其他工具配合才行吧。