建立 Android 開發環境
![](https://assets.matters.news/embed/6811c0d3-1c2a-40c9-89d7-45ab4d3c1ca4.png)
在建立 Android 開發環境時,有幾個大玩具要處理好:
- 開啟 CPU 虛擬化支援
- 安裝 Android Studio 與 Android SDK
- 配置 Android 模擬器
- 安裝 Java
CPU 虛擬化支援
一定要開啟虛擬化支援,後面的 Android 模擬器才跑得起來。
CPU 的虛擬化技術,Intel 的叫「Intel Vertualization Technoogy」、AMD 的叫「SVM」(Secure Virtual Machine),而具體在 UEFI/BIOS 內的開關位置,則視主機板廠商而異,因為現在 UEFI/BIOS 做得越來越花俏所以也越來越難找了,找不到的可以翻翻手冊或搜尋一下。
搞定 UEFI/BIOS 之後 Windows + AMD 的用戶還要去陳年的控制台開啟「Windows Hypervisor 平台」功能:
![](https://assets.matters.news/embed/f1bdfbb5-1d1a-4a3c-a2d9-60ac9d91f884.png)
這樣模擬器跑起來才會順。
Android Studo & Android SDK
如果是 Linux 的用戶,Google 提供的 Android Studio 安裝包顯然不夠親切,建議改用 Flatpak 打包的 Android Studio 或 Snap 打包的 Android Studio,他們都是一鍵安裝,也有更新機制,可以愉快使用。
在裝完之後,最好手動配置相關的環境變數:
export ANDROID_HOME=$HOME/Android/Sdk export PATH=$PATH:$ANDROID_HOME/platform-tools
如果是 Debian 系的 Linux,把上面兩行加入 ~/.bashrc 的最末端即可,如果是其他家系的 Linux 請自行選擇適當的配置檔添加囉!
如果是 Windows,一樣要配置上面兩個環境變數,可以裝個 Rapid Evnironment Editor,讓我們可以更方便的修改環境變數。
Android 模擬器
在 Android Studio 裡面可以用 Device Manger 管理模擬器:
![](https://assets.matters.news/embed/58b9a436-d9cd-4b73-b94f-1d5b8b7f3f8a.png)
而建立模擬機時,目標 API 版本當然是依專案需求而定,但建議不要選太新的版本,太新意味著不夠穩定,比較容易 crash 或發生其他各種靈異現象。
以下圖為例,Tiramlsu 與 API 32 就是太新的版本,不僅不穩定,而且用戶數極少,建議等一年後再用。
![](https://assets.matters.news/embed/0f406971-9530-422f-9f43-a0e4ae72d112.png)
要把模擬器跑起來,除了 Android Studio 外,也可以用 CLI 工具做到。
模擬器 CLI 真身是 ~/Android/Sdk/emulator/emulator 這支程式,它有一大堆選項,這裡只寫最常用的兩個:
列出模擬器
./emulator -list-avds
會輸出現有的模擬器名稱:
Pixel_5_API_31 Pixel_5_API_32
執行模擬器
./emulator -avd Pixel_5_API_31
模擬器就會跑起來了,並且在終端機會有相關的 log 可看,有時候 debug 會需要。
Java
雖說 Android SDK 裡面已經自帶 Java 了,但在某些外部框架,例如 NativeScript、React Native、Weex,還是需要自建 Java 環境,也就是裝 OpenJDK。
首先要考慮的問題是 Java 的版本,Java 也有主次要版本之別,如下圖:
![](https://assets.matters.news/embed/074b8219-057a-49b6-a32d-1e5a17d62a52.png)
主流的 LTS 版本有 7、8、11、17。Java 7 與 8 過於陳年,只是為了老舊系統的續命而存在,可以跳過,而 Java 11 與 17 則要視專案而定,特別是那建置工具 Gradle 與 Java 的相依性,如果不匹配的話,一樣有可能遇到各種靈異問題。
![](https://assets.matters.news/embed/388db05f-331a-4222-859e-eab355cff516.webp)
參見上表,如果專案的 Gradle 是 7.x 的,就用 OpenJDK 17;如果專案的 Gradle 是 5.x、6.x 的,就用 OpenJDK 11;如果是 Gradle 4.x 的,那請把專案升級,如果沒有足夠的誘因升級,那它有可能是負債。
Java 版本確定之後,下一個是門當戶對的問題,因為種種的愛恨糾葛,現在的 OpenJDK 生態不再是甲骨文一家獨大,而是真的很 open 的 open,變得有點像 Linux 一樣百花齊放,各大門派都有自己的 OpenJDK:
![](https://assets.matters.news/embed/39406b2b-5ae8-4047-8914-a44dc75cc22f.png)
甚至有個網站專門幫助選擇障礙的我們挑個門當戶對的 JDK:
![](https://assets.matters.news/embed/170b691b-61ec-4a0c-a9b1-37968ae9c9b5.png)
如果不想花心思挑門當戶對的話,直接裝系統提供的 openJDK 套件就好。
綜合以上,要安裝系統的 OpenJDK 11 包的話,可以一行指令解決:
sudo apt install openjdk-11-jdk
當然隨著專案的增加,是有可能需要切換 JDK 版本的,這時就可以用 Linux 的 alternative 機制做切換。
如果是 Windows,非得挑一個不可的話,看起來最佳的選擇是 Adoptium 的 Eclipse Temurin,它來自 Java 最大的門派 Eclipse Foundation,少了些被單一公司把持命根子的風險。
要安裝 Temruin,在 Chocolatey 上有現成的包可以取用:
choco install temurin11
以上大功告成。
喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!