Android 上的 MediaPipe 架構

請按照下方操作說明,使用 MediaPipe Framework 建構 Android 範例應用程式。如要進一步瞭解這些範例應用程式,請先參閱「Android 上的 Hello World!」一文。

使用 Bazel 建構 Android 範例應用程式

修課條件

  • 按照操作說明安裝 MediaPipe Framework。
  • 設定 Java 執行階段。
  • 設定 Android SDK 30.0.0 以上版本。
  • 設定 Android NDK 26 以上版本。

MediaPipe 建議您透過 Android Studio 設定 Android SDK 和 NDK (請參閱下文的 Android Studio 設定說明)。不過,如果您偏好在沒有 Android Studio 的情況下使用 MediaPipe,請先執行 setup_android_sdk_and_ndk.sh,下載並設定 Android SDK 和 NDK,再建構任何 Android 範例應用程式。

如果已安裝 Android SDK 和 NDK (例如由 Android Studio 安裝),請將 $ANDROID_HOME$ANDROID_NDK_HOME 設為指向已安裝的 SDK 和 NDK。

export ANDROID_HOME=<path to the Android SDK>
export ANDROID_NDK_HOME=<path to the Android NDK>

並將 android_ndk_repository()android_sdk_repository()bind() 規則新增至 WORKSPACE 檔案,如下所示:

$ echo "android_sdk_repository(name = \"androidsdk\")" >> WORKSPACE
$ echo "android_ndk_repository(name = \"androidndk\", api_level=26)" >> WORKSPACE
$ echo "bind(name = \"android/crosstool\", actual = \"@androidndk//:toolchain\")" >> WORKSPACE

為了在舊版 Android 上使用架構,MediaPipe 需要切換至較低的 Android API 級別。如要達成這點,請在 WORKSPACE 檔案中,在 android_ndk_repository() 和/或 android_sdk_repository() 中指定 api_level = $YOUR_INTENDED_API_LEVEL

  1. 如要建構 Android 範例應用程式,請針對對應的 android_binary 建構目標進行建構。舉例來說,MediaPipe Hands 的目標是 BUILD 檔案中的 handtrackinggpu

    bazel build -c opt --config=android_arm64 mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu:handtrackinggpu
    
  2. 在以下裝置上安裝:

    adb install bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu/handtrackinggpu.apk