快轉到主要內容

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路徑

參考資料
#

相關文章

如何在Linux執行Windows exe檔,用Bottles管理多版本的Wine容器
分類   Linux系統 Linux好用軟體
標籤   Bottles for Linux Wine Steam Deck Flatpak
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

留言板

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

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

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。