使用 Flutter 建置 Linux 應用程式
使用 Flutter 為 Linux 建置時需注意的平台專屬事項。
本頁說明使用 Flutter 建置 Linux 應用程式時的專屬考量,包括 Shell 整合,以及應用程式發佈前的準備事項。
與 Linux 整合
#
Linux 的程式設計介面(API),包含函式庫函式與系統呼叫,是以 C 語言及其 ABI 為核心設計。幸運的是,Dart 提供了 dart:ffi 套件,讓 Dart 程式能夠呼叫 C 函式庫。
Foreign Function Interfaces(FFI,外部函式介面)讓 Flutter 應用程式能夠與原生函式庫進行以下操作:
- 使用
malloc或calloc配置原生記憶體 - 支援指標(pointers)、結構(structs)與回呼(callback)
- 支援如
long和size_t等 Application Binary Interface(ABI)型別
如需進一步瞭解如何從 Flutter 呼叫 C 函式庫,請參閱 使用 dart:ffi 進行 C 語言互操作。
如需將您自己的原生 C 或 C++ 程式碼與應用程式一起打包並綁定,請參閱 使用 FFI 綁定原生程式碼。
許多應用程式會受益於使用將底層函式庫呼叫包裝成更便利、符合 Dart 慣用寫法 API 的套件。Canonical 已經開發了一系列套件,專注於讓 Dart 與 Flutter 能夠在 Linux 上運作,內容涵蓋桌面通知、dbus、網路管理與藍牙等支援。
一般來說,還有許多支援建立 Linux 應用程式的套件,其中包含常見的 url_launcher、shared_preferences、file_selector
與 path_provider 等套件。
為 Linux 應用程式發佈做準備
#
可執行檔會位於專案中的 build/linux/x64/<build mode>/bundle/。
在 bundle 目錄下,除了可執行檔之外,還會有兩個目錄:
lib:包含必要的.so函式庫檔案data:包含應用程式的資料資源,例如字型或圖片
除了這些檔案外,您的應用程式也會依賴多個作業系統函式庫,這些函式庫是在編譯時連結的。若要查看完整的函式庫清單,可以在應用程式目錄下使用 ldd 指令。
舉例來說,若要建立一個名為 linux_desktop_test 的新 Flutter 桌面應用程式、進行建置,並檢查其系統函式庫相依性,請執行以下指令:
flutter create linux_desktop_test
cd linux_desktop_test
flutter build linux --release
ldd build/linux/x64/release/bundle/linux_desktop_test
要將此應用程式打包發佈,
請包含 bundle 目錄中的所有內容,
並確認目標 Linux 系統已安裝所有必要的系統函式庫。
這通常只需要執行以下指令即可。
sudo apt-get install libgtk-3-0 libblkid1 liblzma5
若要瞭解如何將 Linux 應用程式發佈到 Snap Store,請參閱將 Linux 應用程式建置並發佈至 Snap Store。
其他資源
#
若要瞭解如何為您的 Flutter 桌面應用程式建立 Linux Debian(.deb)與 RPM(.rpm)版本,請參考逐步說明的 Linux packaging guide。
Unless stated otherwise, the documentation on this site reflects Flutter 3.44.0. Page last updated on 2026-06-14. View source or report an issue.