在建立 Android 開發環境時,有幾個大玩具要處理好:

  1. 開啟 CPU 虛擬化支援
  2. 安裝 Android Studio 與 Android SDK
  3. 配置 Android 模擬器
  4. 安裝 Java

CPU 虛擬化支援

一定要開啟虛擬化支援,後面的 Android 模擬器才跑得起來。

CPU 的虛擬化技術,Intel 的叫「Intel Vertualization Technoogy」、AMD 的叫「SVM」(Secure Virtual Machine),而具體在 UEFI/BIOS 內的開關位置,則視主機板廠商而異,因為現在 UEFI/BIOS 做得越來越花俏所以也越來越難找了,找不到的可以翻翻手冊或搜尋一下。

搞定 UEFI/BIOS 之後 Windows + AMD 的用戶還要去陳年的控制台開啟「Windows Hypervisor 平台」功能:

Windows Hypervisor 平台

這樣模擬器跑起來才會順。

Android Studo & Android SDK

如果是 Linux 的用戶,Google 提供的 Android Studio 安裝包顯然不夠親切,建議改用 Flatpak 打包的 Android StudioSnap 打包的 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 管理模擬器:

Android Studio Device Manager

而建立模擬機時,目標 API 版本當然是依專案需求而定,但建議不要選太新的版本,太新意味著不夠穩定,比較容易 crash 或發生其他各種靈異現象。

以下圖為例,Tiramlsu 與 API 32 就是太新的版本,不僅不穩定,而且用戶數極少,建議等一年後再用。

Android Studio

要把模擬器跑起來,除了 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 也有主次要版本之別,如下圖:

Java Support Roadmap

來源:〈Oracle Java SE Support Roadmap〉

主流的 LTS 版本有 7、8、11、17。Java 7 與 8 過於陳年,只是為了老舊系統的續命而存在,可以跳過,而 Java 11 與 17 則要視專案而定,特別是那建置工具 Gradle 與 Java 的相依性,如果不匹配的話,一樣有可能遇到各種靈異問題。

Gradle-Java Compatibility

來源:《Gradle User Manual》

參見上表,如果專案的 Gradle 是 7.x 的,就用 OpenJDK 17;如果專案的 Gradle 是 5.x、6.x 的,就用 OpenJDK 11;如果是 Gradle 4.x 的,那請把專案升級,如果沒有足夠的誘因升級,那它有可能是負債

Java 版本確定之後,下一個是門當戶對的問題,因為種種的愛恨糾葛,現在的 OpenJDK 生態不再是甲骨文一家獨大,而是真的很 open 的 open,變得有點像 Linux 一樣百花齊放,各大門派都有自己的 OpenJDK:

OpenJDK

來源:維基百科〈OpenJDK〉

甚至有個網站專門幫助選擇障礙的我們挑個門當戶對的 JDK:

Which Version of JDK Should I Use?

來源:Which Version of JDK Should I Use?

如果不想花心思挑門當戶對的話,直接裝系統提供的 openJDK 套件就好。

綜合以上,要安裝系統的 OpenJDK 11 包的話,可以一行指令解決:

sudo apt install openjdk-11-jdk

當然隨著專案的增加,是有可能需要切換 JDK 版本的,這時就可以用 Linux 的 alternative 機制做切換。

如果是 Windows,非得挑一個不可的話,看起來最佳的選擇是 Adoptium 的 Eclipse Temurin,它來自 Java 最大的門派 Eclipse Foundation,少了些被單一公司把持命根子的風險。

要安裝 Temruin,可以用 winget:

winget install EclipseAdoptium.Temurin.11.JDK

這裡用上的 winget 是 Windows 本家的套件管理器。

以上大功告成。