Android の MediaPipe フレームワーク

以下の手順に沿って、MediaPipe Framework を使用して Android サンプルアプリをビルドしてください。これらのサンプルアプリについて詳しくは、Android の Hello World! からご覧ください。

Bazel を使用して Android サンプルアプリをビルドする

前提条件

  • こちらの手順に沿って MediaPipe Framework をインストールします。
  • Java ランタイムを設定します。
  • Android SDK リリース 35.0.0 以降をセットアップします。
  • Android NDK バージョン 28 以降をセットアップします。

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 など)、インストール済みの SDK と NDK を指すように $ANDROID_HOME$ANDROID_NDK_HOME を設定します。

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

WORKSPACE ファイルに次の android_ndk_repository()android_sdk_repository()bind() ルールを追加します。

$ 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 バージョンで Framework を使用するには、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