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.
Agrega la dependencia
oboe
a la seccióndependencies
. Si es necesario, reemplaza1.5.0
por la última versión estable de Oboe:dependencies { implementation 'com.google.oboe:oboe:1.5.0' }
Habilita la opción
prefab
en la secciónbuildFeatures
.android { buildFeatures { prefab true } }
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.
Agrega el siguiente comando
find_package
:find_package (oboe REQUIRED CONFIG)
Agrega
oboe::oboe
a la lista de bibliotecas que se pasan al comandotarget_link_libraries
asociado con tu ejecutable principal.
Cómo integrar el SDK de juegos de Android
Descarga la biblioteca y regístrala en el sistema de control del código fuente.
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:
- Agrega
gamesdk/include
a las rutas de inclusión de tu compilador. 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
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:
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.
Agrega una ruta de acceso con el siguiente formato en las rutas de tu biblioteca de vinculadores:
gamesdk/libs/architectureAPIapiLevelNDKndkVersion_stlVersion_Release/lib/oboe
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:
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")
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)
En tu
target_link_libraries
de la biblioteca nativa, agregaoboe
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.