Build-Einstellungen für Oboe aktualisieren

Es gibt zwei Möglichkeiten, die Oboe-Bibliothek in Ihr Projekt einzubinden.

Oboe in Gradle und CMake einbinden

Diese Anleitung gilt für Projekte, in denen Android Gradle-Plug-in-Version 4.1.0 oder höher mit nativen Abhängigkeiten mit CMake verwendet wird.

Wenn in Ihrem Projekt entweder das Android Gradle-Plug-in Version 4.0 oder ndk-build anstelle von CMake verwendet wird, ist der Vorgang etwas anders. Weitere Informationen finden Sie unter Native Abhängigkeiten verwenden.

Datei build.gradle aktualisieren

Wenn Sie Oboe Ihrer App hinzufügen möchten und das Android Gradle-Plug-in in Version 4.1.0 oder höher verwenden, nehmen Sie die folgenden Änderungen an der Datei build.gradle Ihrer App vor.

  1. Fügen Sie dem Abschnitt dependencies die Abhängigkeit oboe hinzu. Ersetzen Sie bei Bedarf 1.5.0 durch die neueste stabile Version von Oboe:

    dependencies {
        implementation 'com.google.oboe:oboe:1.5.0'
    }
    
  2. Aktivieren Sie die Option prefab im Abschnitt buildFeatures.

    android {
        buildFeatures {
            prefab true
        }
    }
    
  3. So konfigurieren Sie Ihre App für die Verwendung der freigegebenen STL:

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

CMakeLists.txt aktualisieren

Wenn Sie Oboe hinzufügen möchten, müssen Sie zwei Änderungen an der CMakeLists.txt-Datei Ihrer App vornehmen.

  1. Fügen Sie den folgenden find_package-Befehl hinzu:

    find_package (oboe REQUIRED CONFIG)
    
  2. Fügen Sie oboe::oboe der Liste der Bibliotheken hinzu, die an den Befehl target_link_libraries übergeben werden, der mit Ihrer ausführbaren Hauptdatei verknüpft ist.

Integration in das Android Game SDK

  1. Laden Sie die Bibliothek herunter und checken Sie sie in Ihr Quellcodeverwaltungssystem ein.

  2. Nehmen Sie die folgenden Änderungen an den Buildeinstellungen Ihres Projekts vor.

Statische Bibliothek

Wenn Sie das Android Game SDK einbinden, stellen Sie eine statische Verknüpfung zu einer Version der Oboe-Bibliothek her, die für die jeweilige Kombination aus ABI, API-Level, NDK und STL kompiliert wurde:

  1. Fügen Sie gamesdk/include zu den Include-Pfaden Ihres Compilers hinzu.
  2. Fügen Sie in Ihre Linker-Bibliothekspfade einen Pfad der folgenden Form ein:

    gamesdk/libs/architecture_APIapiLevel_NDKndkVersion_stlVersion_Release
    

    Beispiel: gamesdk/libs/arm64-v8a_API24_NDK18_cpp_static_Release

  3. Fügen Sie Ihrem Linker-Befehl -loboe_static hinzu.

Sie müssen die gemeinsam genutzte liboboe.so-Bibliothek nicht bündeln. Durch statisches Verknüpfen wird der Code also deutlich kleiner.

Gemeinsam genutzte Bibliothek

Wenn die für eine statische Bibliothek erforderliche Kombination aus ABI, API-Level, NDK und STL für Ihre Einstellungen nicht verfügbar ist, können Sie stattdessen die Shared Library verknüpfen:

  1. Folgen Sie Schritt 1 und 2 aus dem vorherigen Abschnitt (zur statischen Bibliothek), um die Include-Pfade des Compilers zu aktualisieren, und verwenden Sie die entsprechende Header-Datei.

  2. Fügen Sie in Ihre Linker-Bibliothekspfade einen Pfad der folgenden Form ein:

    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. Rufen Sie die Funktion add_gamesdk_target mit dem Ordner auf, der das Gamesdk enthält:

    // Use a relative or absolute path.
    add_gamesdk_target(PACKAGE_DIR path/to/gamesdk)
    
  3. Fügen Sie in der target_link_libraries-Datei für Ihre native Bibliothek oboe als Abhängigkeit hinzu:

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

Informationen zur erweiterten Verwendung von CMake finden Sie in der Quelldatei gamesdk.cmake.

Nächste Schritte: Oboe verwenden

Wenn Sie mit Oboe Audio abspielen oder aufnehmen möchten, erstellen und aktivieren Sie einen oder mehrere Audiostreams und verwenden Sie Callbacks, um Audio zwischen Ihren Audioeingabe-/ausgabegeräten und Ihrer App auszutauschen. Weitere Informationen finden Sie unter Oboe verwenden.