教學 5 - 行動裝置:Android

現在,我們將獲取我們的應用程序,並將其部署為 Android 應用程式。

將應用程式部署到 Android 的過程與部署為桌面應用程式的過程非常相似。 Briefcase 負責安裝 Android 依賴項,包括 Android SDK、Android 模擬器和 Java 編譯器。

創建一個 Android 應用程式並編譯它

首先,執行``create``命令。這將下載 Android 應用程式模板並向其中添加您的 Python 程式碼。

(beeware-venv) $ briefcase create android

[helloworld] Generating application template...
Using app template: https://github.com/beeware/briefcase-android-gradle-template.git, branch v0.3.18
...

[helloworld] Installing support package...
No support package required.

[helloworld] Installing application code...
Installing src/helloworld... done

[helloworld] Installing requirements...
Writing requirements file... done

[helloworld] Installing application resources...
...

[helloworld] Removing unneeded app content...
Removing unneeded app bundle content... done

[helloworld] Created build/helloworld/android/gradle

當您第一次執行``briefcase create android``時,Briefcase 會下載 Java JDK 和 Android SDK。文件大小和下載時間可能相當大;這可能需要一段時間(10 分鐘或更長時間,具體取決於您的 Internet 連線速度)。下載完成後,系統會提示您接受 Google 的 Android SDK 授權。

完成後,我們的專案中將有一個 build\helloworld\android\gradle 目錄,其中包含具有 Gradle 建置配置的 Android 專案。該專案將包含您的應用程式程式碼以及包含 Python 解釋器的支援套件。

然後我們可以使用 Briefcase 的 build 命令將其編譯成 Android APK 應用程式檔案。

(beeware-venv) $ briefcase build android

[helloworld] Updating app metadata...
Setting main module... done

[helloworld] Building Android APK...
Starting a Gradle Daemon
...
BUILD SUCCESSFUL in 1m 1s
28 actionable tasks: 17 executed, 11 up-to-date
Building... done

[helloworld] Built build/helloworld/android/gradle/app/build/outputs/apk/debug/app-debug.apk

Gradle 可能看起來卡住了

在``briefcase build android``步驟中,Gradle(Android 平台建置工具)將列印``CONFIGURING: 100%``,似乎什麼也沒做。別擔心,它並沒有卡住 - 它正在下載更多 Android SDK 組件。根據您的網路連線速度,這可能還需要 10 分鐘(或更長)。這種滯後應該只在你第一次執行``build``時發生;這些工具會被緩存,並且在您的下一個建置中,將使用快取的版本。

在虛擬設備上運行應用程式

現在我們已經準備好運行我們的應用程式了。您可以使用 Briefcase 的``run``命令在 Android 裝置上執行該應用程式。讓我們從在 Android 模擬器上運行開始。

要運行您的應用程序,請運行``briefcase run android``。當您執行此操作時,系統會提示您提供可以執行該應用程式的裝置清單。最後一項始終是建立新 Android 模擬器的選項。

(beeware-venv) $ briefcase run android

Select device:

  1) Create a new Android emulator

>

我們現在可以選擇我們想要的設備。選擇``建立新的 Android 模擬器``選項,並接受裝置名稱的預設選擇 (beePhone)。

公事包``run``將自動啟動虛擬設備。當裝置啟動時,您將看到 Android 標誌:

Android虛擬裝置啟動

Android虛擬裝置啟動

裝置完成啟動後,Briefcase 將在裝置上安裝您的應用程式。您將短暫地看到一個啟動器畫面:

Android 虛擬裝置已完全啟動,位於啟動器螢幕上

Android 虛擬裝置已完全啟動,位於啟動器螢幕上

然後該應用程式將啟動。應用程式啟動時您將看到啟動畫面:

應用程式啟動畫面

應用程式啟動畫面

模擬器沒有啟動!

Android 模擬器是一款複雜的軟體,依賴許多硬體和作業系統功能 - 這些功能在舊機器上可能無法使用或啟用。如果您在啟動 Android 模擬器時遇到任何困難,請參閱 Android 開發人員文件的``要求與建議 <https://developer.android.com/studio/run/emulator#requirements>`__ 部分。

應用程式第一次啟動時,需要將自身解壓縮到裝置上。這可能需要幾秒鐘。解壓縮後,您將看到我們桌面應用程式的 Android 版本:

教程 2 中的應用程式已全面啟動

演示應用程式全面啟動

如果您無法看到應用程式啟動,您可能需要檢查執行``briefcase run``的終端並查找任何錯誤訊息。

將來,如果您想在該裝置上運行而不使用選單,您可以將模擬器的名稱提供給Briefcase,使用``briefcase run android -d @beePhone``直接在虛擬裝置上執行。

在物理設備上運行應用程式

如果您有實體 Android 手機或平板電腦,則可以使用 USB 電纜將其連接到計算機,然後使用公文包定位您的實體設備。

Android 要求您先準備好設備,然後才能用於開發。您需要對裝置上的選項進行 2 項變更:

  • 啟用開發者選項

  • 啟用USB調試

有關如何進行這些更改的詳細信息,請參閱``Android 開發人員文件 <https://developer.android.com/studio/debug/dev-options#enable>``。

完成這些步驟後,當您執行``briefcase run android``時,您的裝置應該會出現在可用裝置清單中。

(beeware-venv) $ briefcase run android

Select device:

  1) Pixel 3a (94ZZY0LNE8)
  2) @beePhone (emulator)
  3) Create a new Android emulator

>

在這裡,我們可以在部署清單中看到一個新的實體設備及其序號 - 在本例中為 Pixel 3a。將來,如果您想在該裝置上運行而不使用選單,您可以向Briefcase提供手機的序號(在本例中為``briefcase run android -d 94ZZY0LNE8``)。這將直接在設備上運行,無需提示。

我的設備沒有出現!

如果您的裝置完全沒有出現在此清單中,則可能是您尚未啟用 USB 偵錯(或裝置未插入!)。

如果您的裝置出現,但被列為``未知裝置(未授權開發)``,則表示開發者模式尚未正確啟用。重新執行`啟用開發人員選項的步驟<https://developer.android.com/studio/debug/dev-options#enable>`__,並重新執行``briefcase run android``。

下一步

現在我們的手機上已經有一個應用程式了!我們還有其他地方可以部署 BeeWare 應用程式嗎?請參閱 教學 6 以了解…