使用 Flutter 建置 Linux 應用程式
本頁討論使用 Flutter 建置 Linux 應用程式時的獨特考量,包括 shell 整合和準備應用程式以進行發佈。
與 Linux 整合
#Linux 程式設計介面,包含函式庫函式和系統呼叫,是圍繞 C 語言和 ABI 設計的。幸運的是,Dart 提供了 dart:ffi
套件,使 Dart 程式可以呼叫 C 函式庫。
外部函式介面 (FFI) 允許 Flutter 應用程式使用原生函式庫執行以下操作
- 使用
malloc
或calloc
分配原生記憶體 - 支援指標、結構和回呼
- 支援應用程式二進位介面 (ABI) 類型,例如
long
和size_t
若要了解更多關於從 Flutter 呼叫 C 函式庫的資訊,請參閱 使用 dart:ffi
的 C 互通性。
許多應用程式受益於使用套件,將底層函式庫呼叫包裝在更方便、慣用的 Dart API 中。Canonical 建置了一系列套件,重點在於在 Linux 上啟用 Dart 和 Flutter,包括支援桌面通知、dbus、網路管理和藍牙。
一般來說,許多其他套件支援建立 Linux 應用程式,包括常見的套件,例如 url_launcher
、shared_preferences
、file_selector
和 path_provider
。
準備 Linux 應用程式以進行發佈
#可在專案中的 build/linux/x64/<建置模式>/bundle/
下找到可執行二進位檔。在 bundle
目錄中的可執行二進位檔旁邊,您會找到兩個目錄
lib
包含所需的.so
函式庫檔案data
包含應用程式的資料資產,例如字型或圖片
除了這些檔案之外,您的應用程式也依賴於編譯時所使用的各種作業系統函式庫。若要查看完整的函式庫清單,請在應用程式的目錄中使用 ldd
命令。
例如,假設您有一個名為 linux_desktop_test
的 Flutter 桌面應用程式。若要檢查其系統函式庫相依性,請使用以下命令
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 封裝指南。
除非另有說明,否則本網站上的文件反映了 Flutter 的最新穩定版本。頁面最後更新於 2024-05-30。 檢視原始碼 或 回報問題。