跳至主要內容

呼叫 JetPack API

在 Android 上執行的 Flutter 應用程式,無論如何都能在 Android 發布的第一天就使用最新的 API。此頁面概述了呼叫 Android 特定 API 的可用方法。

使用現有的解決方案

#

在大多數情況下,您可以使用外掛程式(如下一節所示)來呼叫原生 API,而無需自行編寫任何自訂的樣板或膠水程式碼。

使用外掛程式

#

無論您的 Flutter 應用程式在哪裡執行,使用外掛程式通常都是存取原生 API 最簡單的方法。若要使用外掛程式,請造訪 pub.dev 並搜尋您需要的主題。大多數原生功能,包括存取 GPS、相機或計步器等常見硬體,都受到健全的外掛程式支援。

如需將外掛程式新增至 Flutter 應用程式的完整指南,請參閱使用套件文件

並非所有原生功能都受外掛程式支援,尤其是在發布後立即支援。在任何情況下,如果您的所需原生功能未在 pub.dev 上的套件涵蓋,請繼續閱讀以下各節。

建立自訂解決方案

#

並非所有情境和 API 都會受現有解決方案支援;但幸運的是,您隨時可以新增所需的任何支援。以下各節描述了從 Dart 呼叫原生程式碼的兩種不同方法。

透過 FFI 直接呼叫原生程式碼

#

呼叫原生 API 最直接且有效率的方式,是透過 FFI 直接呼叫 API。這會將您的 Dart 可執行檔在編譯時連結至任何指定的原生程式碼,讓您可以透過少量的膠水程式碼從 UI 執行緒直接呼叫它。在大多數情況下,ffigenjnigen 有助於編寫此膠水程式碼。

如需從 Flutter 應用程式直接呼叫原生程式碼的完整指南,請參閱FFI 文件

在未來幾個月內,Dart 團隊希望透過直接支援使用 FFI 方法呼叫原生 API 來簡化此過程,而無需開發人員編寫任何膠水程式碼。

新增一個 MethodChannel

#

MethodChannel 是 Flutter 應用程式可以呼叫任意原生程式碼的另一種方法。與前一步驟中描述的 FFI 解決方案不同,MethodChannel 始終是異步的,這可能對您有影響,也可能沒有,取決於您的使用案例。與 FFI 和直接呼叫原生程式碼一樣,使用 MethodChannel 需要少量膠水程式碼,才能將您的 Dart 物件轉換為原生物件,然後再轉換回來。在大多數情況下,pkg:pigeon 有助於編寫此膠水程式碼。

如需將 MethodChannel 新增至 Flutter 應用程式的完整指南,請參閱 MethodChannel 文件