Android 上的 MediaPipe 框架

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

使用 Bazel 构建 Android 示例应用

前提条件

  • 按照这些instructions安装 MediaPipe 框架。
  • 设置 Java 运行时。
  • 设置 Android SDK 30.0.0 及更高版本。
  • 设置 18 到 21 之间的 Android NDK 版本。

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_inventory() 和 android_sdk_inventory() 规则添加到 WORKSPACE 文件中,如下所示:

$ echo "android_sdk_repository(name = \"androidsdk\")" >> WORKSPACE
$ echo "android_ndk_repository(name = \"androidndk\", api_level=21)" >> WORKSPACE

为了在早期 Android 版本上使用框架,MediaPipe 需要切换到较低的 Android API 级别。为此,您可以在 android_ndk_inventory() 和/或 WORKSPACE 文件中的 android_sdk_repo() 中指定 api_level = $YOUR_INTENDED_API_LEVEL

  1. 如需构建 Android 示例应用,请根据相应的 android_binary 构建目标进行构建。例如,对于 MediaPipe 手部,目标为 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