「Android Studio」是Google官方基於Intellij IDEA開發的整合式開發環境,還內建功能齊全的Android手機模擬器,寫Android APP常常會用到。
根據 官方文件,Linux的套件為zip檔,解壓縮後點選二進位檔執行,使用者還要手動設定Java環境。
這裡嘗試使用另一種非正規的方式來設定Android Studio:用Flatpak格式安裝,如此一來理論上在Fedora Sivlerblue、openSUSE MicroOS、Steam Deck等系統也可以跑Android Studio了。
Flatpak格式可以統一管理系統依賴套件,將Java之類的全部塞在沙盒裡執行,版本與系統的隔絕。除安裝上需要做些特殊調整外,其餘功能與一般版沒有差異。
下面是我的的設定筆記。
1. 安裝Flatpak版Android Studio#
Android Studio版本:2023.1.1 Patch 2
測試系統:Ubuntu 22.04 LTS
- Android Studio目前由Linux社群打包,已上架Flathub,安裝 Flatpak後,再用指令安裝:
flatpak --user install flathub com.google.AndroidStudio
安裝後開啟Android Studio,按照畫面指示設定。下載SDK檔案,路徑維持預設,放在
~/Android
,其他設定檔資料放在~/.var/app/com.google.AndroidStudio/data/
~/Android
目錄下包含Android Studio所需的一切工具,包含AVD模擬器、Platform Tools (ADB和Fastboot)。新增一個專案後即可使用Android Studio。
2. 管理Android Studio的手機模擬器#
AVD (Android Virtual Device) 是Android Studio內建的手機模擬器,提供多樣的偵錯功能,支援GPU加速。
在Linux安裝 QEMU/KVM套件,Virt Manager可不裝。
確認KVM核心模組有載入
sudo lsmod kvm
kvm --version
- 允許Android Studio存取KVM裝置,防止AVD卡在
waiting for all devices to come online
錯誤
flatpak override --device=kvm com.google.AndroidStudio
如果要讓AVD模擬器使用Nvidia GPU硬體加速,請記得安裝 閉源圖形驅動。
以上程序就緒後,就可以點選Tools → Device Manager,啟動Android手機模擬器了。預設型號是為Pixel 3a
你可以點選Advanced Settings,啟用GPU硬體加速。
3. 管理Java版本#
Android Studio預設只能讀到沙盒內的JDK。
- 各種版本的OpenJDK可以從Flathub下載:
flatpak search org.freedesktop.Sdk.Extension.openjdk
flatpak install org.freedesktop.Sdk.Extension.openjdk11
- 裝完後要啟用Flatpak Extension
flatpak override --env=FLATPAK_ENABLE_SDK_EXT=* com.google.AndroidStudio
對Flatpak程式而言,JDK路徑位於
/usr/lib/sdk/openjdk
如果一定要用系統安裝的Java,那就開放Android Studio對該路徑的讀取權限,再用環境變數
JAVA_HOME
設定Java路徑:
flatpak override --filesystem=/usr/lib/jvm/java-19-openjdk-amd64 com.google.AndroidStudio
flatpak override --env=JAVA_HOME=/usr/lib/jvm/java-19-openjdk-amd64
4. Flatpak環境安裝Flutter SDK#
Flutter為Google推出的跨平台框架,目前尚未有Flatpak格式套件,必須手動設定SDK。
- 參考 Flutter官方文件,使用Manual方式安裝Flutter SDK
cd ~
# 解壓縮
tar xf flutter_linux_3.16.9-stable.tar.xz
# 將Flutter加入到PATH,填入到.bashrc
echo 'PATH="$PATH:/home/$USER/flutter/bin"' >> ~/.bashrc
source ~/.bashrc
- 使用
flutter config
指示Android Studio的路徑
flutter config --android-studio-dir="/home/user/.local/share/flatpak/app/com.google.AndroidStudio/current/active/files/extra/android-studio"
使用
flutter doctor -v
檢查環境是否正確安裝,並依照文字指示修正問題例如要解決
cmdline-tools component is missing
,就到Android Studio的Tools → SDK Manager,取消勾選Hide Obsolete Packages,再點選下載Android SDK Command-line Tools
再同意全部授權條款
flutter doctor --android-licenses
Cannot find Chrome
的問題,參考 Linux安裝Chrome教學,你可以裝deb或者Flatpak版,再用環境變數CHROME_EXECUTABLE
指向二進位檔路徑即可:
# Flatpak版Chrome路徑
echo 'CHROME_EXECUTABLE=/home/user/.local/share/flatpak/app/com.google.Chrome/current/active/export/bin/com.google.Chrome' >> ~/.bashrc
source ~/.bashrc
- Clang、Ninja、GTK3的套件,就用系統套件管理器安裝
sudo apt install clang ninja-build libgtk-3-dev
- 以Flatpak Extension安裝Clang
flatpak install org.freedesktop.Sdk.Extension.llvm15
flatpak --user override --env=FLATPAK_ENABLE_SDK_EXT=* com.google.AndroidStudio
再跑一次
flutter doctor -v
,只剩Unable to determine Android Studio version.
錯誤,這個可以暫時忽略開啟Android Studio,在Tools → SDK Manager → Plugins,下載Flutter與Dart的插件
重啟後便可新增Flutter專案,需手動指定Flutter SDK路徑