Build-Einstellungen für Oboe aktualisieren

Es gibt zwei Möglichkeiten, die Oboenbibliothek in Ihr Projekt zu integrieren.

Oboe in Gradle und CMake einbinden

Diese Anleitung gilt für Projekte mit Android-Gradle-Plug-in ab Version 4.1.0 mit nativen Abhängigkeiten mit CMake.

Wenn Sie in Ihrem Projekt das Android-Gradle-Plug-in Version 4.0 oder ndk-build statt CMake ist der Prozess etwas anders. Siehe Native Abhängigkeiten verwenden.

build.gradle aktualisieren

So fügen Sie Oboe zu Ihrer App hinzu, während Sie das Android-Gradle-Plug-in Version 4.1.0 oder Fügen Sie der Datei build.gradle Ihrer App die folgenden Werte hinzu.

  1. Fügen Sie dem Abschnitt dependencies die Abhängigkeit oboe hinzu. Bei Bedarf können Sie Ersetzen Sie 1.5.0 durch die neueste stabile Version. Oboen:

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

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

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

CMakeLists.txt aktualisieren

Zum Hinzufügen von Oboe müssen der CMakeLists.txt-Datei Ihrer App zwei Einträge hinzugefügt werden.

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

    find_package (oboe REQUIRED CONFIG)
    
  2. oboe::oboe zur Liste der Bibliotheken hinzufügen, die an die target_link_libraries-Befehl, der der ausführbaren Hauptdatei zugeordnet ist.

In das Android Game SDK einbinden

  1. Laden Sie die Bibliothek herunter und prüfen Sie, in Ihr Versionsverwaltungssystem.

  2. Nehmen Sie die folgenden Änderungen an den Build-Einstellungen Ihres Projekts vor.

Static-Bibliothek

Bei der Einbindung des Android Game SDK erstellen Sie eine statische Verknüpfung zu einer Version der Oboe-Bibliothek, die für das angegebene ABI, API-Level, NDK und STL kompiliert wurde Kombination:

  1. Fügen Sie gamesdk/include zu Ihren Compiler-Include-Pfaden hinzu.
  2. Fügen Sie den Pfaden der Verknüpfungsbibliothek einen Pfad im folgenden Format hinzu:

    gamesdk/libs/architecture_APIapiLevel_NDKndkVersion_stlVersion_Release
    

    Beispiel: gamesdk/libs/arm64-v8a_API24_NDK18_cpp_static_Release

  3. Fügen Sie dem Verknüpfungsbefehl -loboe_static hinzu.

Sie müssen die gemeinsam genutzte Bibliothek von liboboe.so nicht bündeln, weil sie statisch ist. ist der Code-Fußabdruck viel geringer.

Gemeinsam genutzte Bibliothek

Wenn die Kombination aus ABI, API-Ebene, NDK und STL für eine statische Bibliothek erforderlich ist für Ihre Einstellungen nicht verfügbar ist, können Sie eine Verknüpfung mit der gemeinsam genutzten Bibliothek erstellen. stattdessen:

  1. Führen Sie die Schritte 1 und 2 aus dem vorherigen Abschnitt zur statischen Bibliothek aus, um Aktualisieren Sie Ihre Compiler-Include-Pfade und verwenden Sie die entsprechende Headerdatei.

  2. Fügen Sie den Pfaden der Verknüpfungsbibliothek einen Pfad im folgenden Format hinzu:

    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:

    // Use a relative or absolute path.
    add_gamesdk_target(PACKAGE_DIR path/to/gamesdk)
    
  3. Fügen Sie in der target_link_libraries Ihrer nativen Bibliothek oboe als Abhängigkeit:

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

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

Nächste Schritte: Oboe verwenden

Wenn du Audio mit Oboe abspielen oder aufnehmen möchtest, musst du mindestens ein Audio erstellen und aktivieren Streams und tausche mithilfe von Callbacks Audio zwischen der Audioeingabe und -ausgabe aus. Geräte und Ihre App. Weitere Informationen finden Sie unter Verwenden von Oboen