快轉到主要內容

Linux系統以Flatpak格式安裝Android Studio和Flutter SDK

Linux系統 Linux好用軟體 Flatpak Android Studio Android
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

「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

  1. Android Studio目前由Linux社群打包,已上架Flathub,安裝 Flatpak後,再用指令安裝:
flatpak --user install flathub com.google.AndroidStudio
  1. 安裝後開啟Android Studio,按照畫面指示設定。下載SDK檔案,路徑維持預設,放在~/Android,其他設定檔資料放在~/.var/app/com.google.AndroidStudio/data/

  2. ~/Android目錄下包含Android Studio所需的一切工具,包含AVD模擬器、Platform Tools (ADB和Fastboot)。

  3. 新增一個專案後即可使用Android Studio。

2. 管理Android Studio的手機模擬器
#

AVD (Android Virtual Device) 是Android Studio內建的手機模擬器,提供多樣的偵錯功能,支援GPU加速。

  1. 在Linux安裝 QEMU/KVM套件,Virt Manager可不裝。

  2. 確認KVM核心模組有載入

sudo lsmod kvm

kvm --version
  1. 允許Android Studio存取KVM裝置,防止AVD卡在waiting for all devices to come online錯誤
flatpak override --device=kvm com.google.AndroidStudio
  1. 如果要讓AVD模擬器使用Nvidia GPU硬體加速,請記得安裝 閉源圖形驅動

  2. 以上程序就緒後,就可以點選Tools → Device Manager,啟動Android手機模擬器了。預設型號是為Pixel 3a

  3. 你可以點選Advanced Settings,啟用GPU硬體加速。

3. 管理Java版本
#

Android Studio預設只能讀到沙盒內的JDK。

  1. 各種版本的OpenJDK可以從Flathub下載:
flatpak search org.freedesktop.Sdk.Extension.openjdk

flatpak install org.freedesktop.Sdk.Extension.openjdk11
  1. 裝完後要啟用Flatpak Extension
flatpak override --env=FLATPAK_ENABLE_SDK_EXT=* com.google.AndroidStudio
  1. 對Flatpak程式而言,JDK路徑位於/usr/lib/sdk/openjdk

  2. 如果一定要用系統安裝的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。

  1. 參考 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
  1. 使用flutter config指示Android Studio的路徑
flutter config --android-studio-dir="/home/user/.local/share/flatpak/app/com.google.AndroidStudio/current/active/files/extra/android-studio"
  1. 使用flutter doctor -v檢查環境是否正確安裝,並依照文字指示修正問題

  2. 例如要解決cmdline-tools component is missing,就到Android Studio的Tools → SDK Manager,取消勾選Hide Obsolete Packages,再點選下載Android SDK Command-line Tools

  3. 再同意全部授權條款

flutter doctor --android-licenses
  1. 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
  1. Clang、Ninja、GTK3的套件,就用系統套件管理器安裝
sudo apt install clang ninja-build libgtk-3-dev
  1. 以Flatpak Extension安裝Clang
flatpak install org.freedesktop.Sdk.Extension.llvm15

flatpak --user override --env=FLATPAK_ENABLE_SDK_EXT=* com.google.AndroidStudio
  1. 再跑一次flutter doctor -v,只剩Unable to determine Android Studio version.錯誤,這個可以暫時忽略

  2. 開啟Android Studio,在Tools → SDK Manager → Plugins,下載Flutter與Dart的插件

  3. 重啟後便可新增Flutter專案,需手動指定Flutter SDK路徑

參考資料
#

相關文章

Flatpak版Linux Visual Studio Code安裝筆記
Linux系統 Linux好用軟體 Flatpak Visual Studio Code
想在電腦跑Android APP?介紹幾個Linux系統「Android手遊模擬器」的解決方案
Linux系統 Linux好用軟體 Linux Waydroid Android-x86 ReDroid Bliss OS Android
跨平台Android手遊模擬器 ~ Linux版Genymotion的安裝教學
Linux系統 Linux好用軟體 Genymotion Android QEMU VirtualBox

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。