Android의 MediaPipe 프레임워크

MediaPipe 프레임워크로 Android 예시 앱을 빌드하려면 아래 안내를 따르세요. 이러한 예시 앱에 대해 자세히 알아보려면 Android의 Hello World부터 시작합니다.

Bazel을 사용하여 Android 예시 앱 빌드

기본 요건

  • 안내에 따라 MediaPipe 프레임워크를 설치합니다.
  • Java 런타임을 설정합니다.
  • Android SDK 버전 30.0.0 이상을 설정합니다.
  • Android NDK 버전 26 이상을 설정합니다.

MediaPipe에서는 Android 스튜디오를 통해 Android SDK 및 NDK를 설정하는 것이 좋습니다 (Android 스튜디오 설정은 아래 참고). 그러나 Android 스튜디오 없이 MediaPipe를 사용하려면 Android 예시 앱을 빌드하기 전에 setup_android_sdk_and_ndk.sh를 실행하여 Android SDK 및 NDK를 다운로드하고 설정하세요.

Android SDK 및 NDK가 이미 설치된 경우 (예: Android 스튜디오에서 설치) $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