Atualizar suas configurações de build para a Oboe

Há duas maneiras de incorporar a biblioteca Oboe ao seu projeto.

Integrar a Oboe usando o Gradle e o CMake

Estas instruções são para projetos que usam o Plug-in do Android para Gradle versão 4.1.0 ou mais recente com dependências nativas com o CMake.

Se o projeto estiver usando o Plug-in do Android para Gradle versão 4.0 ou o ndk-build em vez do CMake, o processo será um pouco diferente. Consulte Como usar dependências nativas.

Atualizar build.gradle

Para adicionar a Oboe ao seu app usando o Plug-in do Android para Gradle versão 4.1.0 ou mais recente, adicione o seguinte ao arquivo build.gradle do app.

  1. Adicione a dependência oboe à seção dependencies. Se necessário, substitua 1.5.0 pela versão estável mais recente da Oboe:

    dependencies {
        implementation 'com.google.oboe:oboe:1.5.0'
    }
    
  2. Ative a opção prefab na seção buildFeatures.

    android {
        buildFeatures {
            prefab true
        }
    }
    
  3. Configure seu app para usar a STL compartilhada:

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

Atualizar CMakeLists.txt

Para adicionar a Oboe, é preciso fazer duas adições ao arquivo CMakeLists.txt do seu app.

  1. Adicione o seguinte comando find_package:

    find_package (oboe REQUIRED CONFIG)
    
  2. Adicione oboe::oboe à lista de bibliotecas transmitidas ao comando target_link_libraries associado ao executável principal.

Integrar com o SDK para jogos do Android

  1. Faça o download da biblioteca e inclua-a no seu sistema de controle de origem.

  2. Faça as mudanças a seguir nas configurações de compilação do seu projeto.

Biblioteca estática

Ao integrar o SDK para jogos do Android, você vincula estaticamente uma versão da biblioteca Oboe compilada para a combinação de ABI, o nível da API, NDK e STL determinada:

  1. Adicione gamesdk/include aos caminhos de inclusão do compilador.
  2. Adicione um caminho no seguinte formato aos caminhos da biblioteca do vinculador:

    gamesdk/libs/architecture_APIapiLevel_NDKndkVersion_stlVersion_Release
    

    Por exemplo: gamesdk/libs/arm64-v8a_API24_NDK18_cpp_static_Release

  3. Adicione -loboe_static ao comando do vinculador.

Você não precisa adicionar a biblioteca compartilhada liboboe.so a um pacote, o que significa que a vinculação estática oferece um código muito menor.

Biblioteca compartilhada

Se a combinação da ABI, do nível da API, do NDK e da STL necessária para uma biblioteca estática não estiver disponível em suas configurações, será possível vincular a biblioteca compartilhada:

  1. Siga as etapas 1 e 2 da seção anterior (sobre a biblioteca estática) para atualizar o compilador para incluir caminhos e use o arquivo principal adequado.

  2. Adicione um caminho no seguinte formato aos caminhos da biblioteca do vinculador:

    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. Chame a função add_gamesdk_target com a pasta que contém o gamesdk:

    // Use a relative or absolute path.
    add_gamesdk_target(PACKAGE_DIR path/to/gamesdk)
    
  3. Nas target_link_libraries da biblioteca nativa, adicione oboe como uma dependência:

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

Para uso avançado do CMake, consulte o arquivo de origem gamesdk.cmake.

Próximas etapas: como usar a Oboe

Para ouvir ou gravar áudio usando a Oboe, crie e ative um ou mais streams de áudio. Depois, use callbacks para trocar áudio entre os dispositivos de entrada/saída de áudio e seu app. Veja Como usar a Oboe (link em inglês).