Oboe 向けにビルド設定を更新する

Oboe ライブラリをプロジェクトに組み込むには、2 つの方法があります。

Oboe を Gradle と CMake に統合する

以下の手順は、Android Gradle プラグイン バージョン 4.1.0 以降を使用しており、CMake でネイティブ依存関係を使用しているプロジェクトを対象としています。

プロジェクトで CMake ではなく Android Gradle プラグイン バージョン 4.0 または ndk-build を使用している場合、プロセスは若干異なります。ネイティブ依存関係の使用をご覧ください。

build.gradle を更新する

Android Gradle プラグイン バージョン 4.1.0 以降を使用しているときに、アプリに Oboe を追加するには、アプリの build.gradle ファイルに次の内容を追加します。

  1. dependencies セクションに oboe 依存関係をに追加します。必要に応じて 1.5.0最新の安定版に置き換えます。 Oboe:

    dependencies {
        implementation 'com.google.oboe:oboe:1.5.0'
    }
    
  2. buildFeatures セクションで prefab オプションを有効にします。

    android {
        buildFeatures {
            prefab true
        }
    }
    
  3. 共有 STL を使用するようにアプリを設定します。

    android {
        defaultConfig {
            externalNativeBuild {
                cmake {
                    arguments "-DANDROID_STL=c++_shared"
                }
            }
        }
    }
    

CMakeLists.txt を更新する

Oboe を追加するには、アプリの CMakeLists.txt ファイルに以下の 2 つを追加する必要があります。

  1. 次の find_package コマンドを追加します。

    find_package (oboe REQUIRED CONFIG)
    
  2. main 実行可能ファイルに関連付けられた target_link_libraries コマンドに渡されるライブラリのリストに oboe::oboe を追加します。

Android Game SDK に統合する

  1. ライブラリをダウンロードして、ソース管理システムにチェックインします。

  2. プロジェクトのビルド設定を次のように変更します。

静的ライブラリ

Android Game SDK との統合では、指定した ABI、API レベル、NDK、STL の組み合わせのためにコンパイルされた Oboe ライブラリのバージョンに静的にリンクします。

  1. コンパイラのインクルード パスに gamesdk/include を追加します。
  2. リンカー ライブラリのパスに、次の形式のパスを追加します。

    gamesdk/libs/architecture_APIapiLevel_NDKndkVersion_stlVersion_Release
    

    例: gamesdk/libs/arm64-v8a_API24_NDK18_cpp_static_Release

  3. リンカー コマンドに -loboe_static を追加します。

liboboe.so 共有ライブラリをバンドルする必要はありません。静的リンクを使用するとコード フットプリントを大幅に削減できます。

共有ライブラリ

静的ライブラリに必要な ABI、API レベル、NDK、STL の組み合わせを設定で使用できない場合は、代わりに共有ライブラリにリンクできます。

  1. 静的ライブラリに関する前のセクションのステップ 1 と 2 に沿ってコンパイラのインクルード パスを更新し、適切なヘッダー ファイルを使用します。

  2. リンカー ライブラリのパスに、次の形式のパスを追加します。

    gamesdk/libs/architectureAPIapiLevelNDKndkVersion_stlVersion_Release/lib/oboe

  3. Add -loboe -lOpenSLES to your linker command.

Using CMake (static library only)

If you're using CMake, see the gamesdk/samples/bouncyball/app/CMakeLists.txt file in the downloaded SDK for an example CMake configuration. It includes a utility file called gamesdk/samples/gamesdk.cmake, which performs final checks, adds the proper compiler include paths, and generates a target that you can use to link the library.

To use the gamesdk.cmake utility:

  1. Include this file in your CMakeLists.txt:

    // Use a relative or absolute path. For example, /home/yourusername/gamesdk
    // or C:\Android\gamesdk.
    include("path/to/gamesdk/samples/gamesdk.cmake")
    

  2. gamesdk を格納するフォルダを指定して add_gamesdk_target 関数を呼び出します:

    // Use a relative or absolute path.
    add_gamesdk_target(PACKAGE_DIR path/to/gamesdk)
    
  3. ネイティブ ライブラリの target_link_libraries に、依存関係として oboe を追加します:

    // The casing of OpenSLES is important.
    target_link_libraries(native-lib oboe OpenSLES ...) 
    

CMake の高度な使用方法については、gamesdk.cmake ソースファイルをご覧ください。

次のステップ: Oboe を使用する

Oboe を使用して音声の再生や記録を行うには、1 つ以上のオーディオ ストリームを作成して有効にし、オーディオ入力/出力デバイスとアプリの間で音声を交換するためにコールバックを使用します。詳しくは、Oboe の使用をご覧ください。