Android 上的 MediaPipe 框架

请按照以下说明使用 MediaPipe 框架构建 Android 示例应用。 如需详细了解这些示例应用,请先参阅 Android 上的 Hello World!

使用 Bazel 构建 Android 示例应用

前提条件

  • 按照以下说明安装 MediaPipe 框架。
  • 设置 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 build 目标进行构建。例如,对于 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