请按照以下说明使用 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
。
如需构建 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
请在以下设备上安装:
adb install bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu/handtrackinggpu.apk