Cómo actualizar la configuración de la compilación para Oboe

Existen dos maneras de incorporar la biblioteca Oboe en tu proyecto.

Cómo integrar Oboe con Gradle y CMake

Estas instrucciones se aplican a proyectos que usan la versión 4.1.0 o posterior del complemento de Android para Gradle mediante dependencias nativas con CMake.

Si tu proyecto usa la versión 4.0 del complemento de Android para Gradle o ndk-build en lugar de CMake, el proceso es un poco diferente. Consulta Cómo usar dependencias nativas.

Cómo actualizar build.gradle

Para agregar Oboe a tu app mientras usas la versión 4.1.0 o posterior del complemento de Android para Gradle, realiza las siguientes adiciones en el archivo build.gradle de tu app.

  1. Agrega la dependencia oboe a la sección dependencies. Si es necesario, reemplaza 1.5.0 por la última versión estable de Oboe:

    dependencies {
        implementation 'com.google.oboe:oboe:1.5.0'
    }
    
  2. Habilita la opción prefab en la sección buildFeatures.

    android {
        buildFeatures {
            prefab true
        }
    }
    
  3. Configura tu app para usar la STL compartida:

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

Cómo actualizar CMakeLists.txt

Para agregar Oboe, se requieren dos adiciones al archivo CMakeLists.txt de tu app.

  1. Agrega el siguiente comando find_package:

    find_package (oboe REQUIRED CONFIG)
    
  2. Agrega oboe::oboe a la lista de bibliotecas que se pasan al comando target_link_libraries asociado con tu ejecutable principal.

Cómo integrar el SDK de juegos de Android

  1. Descarga la biblioteca y regístrala en el sistema de control del código fuente.

  2. Realiza los siguientes cambios en la configuración de la compilación del proyecto.

Biblioteca estática

Cuando integras el SDK de juegos de Android, estableces un vínculo estático con una versión de la biblioteca Oboe que se compila para la combinación determinada de ABI, nivel de API, NDK y STL:

  1. Agrega gamesdk/include a las rutas de inclusión de tu compilador.
  2. Agrega una ruta de acceso con el siguiente formato en las rutas de tu biblioteca de vinculadores:

    gamesdk/libs/architecture_APIapiLevel_NDKndkVersion_stlVersion_Release
    

    Por ejemplo: gamesdk/libs/arm64-v8a_API24_NDK18_cpp_static_Release

  3. Agrega -loboe_static a tu comando de vinculador.

No es necesario empaquetar la biblioteca compartida liboboe.so, lo que implica que el vínculo estático te brinda una huella de código mucho más pequeña.

Biblioteca compartida

Si, para tu configuración, no está disponible la combinación de ABI, nivel de API, NDK y STL que se necesita para una biblioteca estática, en su lugar, puedes vincular la biblioteca compartida:

  1. Sigue los pasos 1 y 2 de la sección anterior (sobre la biblioteca estática) para actualizar las rutas de inclusión de tu compilador y usar el archivo de encabezado adecuado.

  2. Agrega una ruta de acceso con el siguiente formato en las rutas de tu biblioteca de vinculadores:

    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. Llama a la función add_gamesdk_target con la carpeta que contiene el gamesdk:

    // Use a relative or absolute path.
    add_gamesdk_target(PACKAGE_DIR path/to/gamesdk)
    
  3. En tu target_link_libraries de la biblioteca nativa, agrega oboe como una dependencia:

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

Para un uso avanzado de CMake, consulta el archivo fuente gamesdk.cmake.

Próximos pasos: cómo usar Oboe

Para reproducir o grabar audios con Oboe, crea y activa una o más transmisiones de audio, y usa devoluciones de llamada a fin de intercambiar audios entre tus dispositivos de entrada y de salida de audio y tu app. Consulta Cómo usar Oboe.