Modifier vos paramètres de compilation pour Oboe

Il existe deux façons d'intégrer la bibliothèque Oboe à votre projet.

Intégrer Oboe avec Gradle et CMake

Ces instructions concernent les projets utilisant le plug-in Android Gradle 4.1.0 ou version ultérieure avec des dépendances natives avec CMake.

Si votre projet utilise le plug-in Android Gradle 4.0 ou ndk-build au lieu de CMake, la procédure est légèrement différente. Consultez la section Utiliser des dépendances natives.

Mettre à jour le fichier build.gradle

Pour ajouter Oboe à votre application avec le plug-in Android Gradle 4.1.0 ou version ultérieure, ajoutez les éléments suivants au fichier build.gradle de votre application.

  1. Ajoutez la dépendance oboe à la section dependencies. Si nécessaire, remplacez 1.5.0 par la dernière version stable d'Oboe :

    dependencies {
        implementation 'com.google.oboe:oboe:1.5.0'
    }
    
  2. Activez l'option prefab dans la section buildFeatures.

    android {
        buildFeatures {
            prefab true
        }
    }
    
  3. Configurez votre application pour utiliser le STL partagé :

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

Mettre à jour le fichier CMakeLists.txt

Pour ajouter Oboe, vous devez ajouter deux éléments au fichier CMakeLists.txt de votre application.

  1. Ajoutez la commande find_package suivante :

    find_package (oboe REQUIRED CONFIG)
    
  2. Ajoutez oboe::oboe à la liste des bibliothèques transmises à la commande target_link_libraries associée à votre exécutable principal.

Effectuer une intégration avec le SDK Android Game

  1. Téléchargez la bibliothèque et vérifiez-la dans votre système de contrôle des sources.

  2. Apportez les modifications suivantes aux paramètres de compilation de votre projet.

Bibliothèque statique

Lorsque vous intégrez le SDK Android Game, vous créez un lien statique vers une version de la bibliothèque Oboe compilée pour la combinaison d'ABI, de niveau d'API, de NDK et de STL donnée :

  1. Ajoutez gamesdk/include aux chemins d'accès include de votre compilateur.
  2. Ajoutez un chemin au format suivant dans les chemins d'accès de votre bibliothèque d'inclusion :

    gamesdk/libs/architecture_APIapiLevel_NDKndkVersion_stlVersion_Release
    

    Par exemple : gamesdk/libs/arm64-v8a_API24_NDK18_cpp_static_Release

  3. Ajoutez -loboe_static à votre commande d'éditeur de liens.

Vous n'avez pas besoin de regrouper la bibliothèque partagée liboboe.so. La liaison statique vous permet donc de réduire considérablement l'encombrement du code.

Bibliothèque partagée

Si la combinaison d'ABI, de niveau d'API, de NDK et de STL requise pour une bibliothèque statique n'est pas disponible pour vos paramètres, vous pouvez effectuer une liaison à la bibliothèque partagée à la place :

  1. Suivez les étapes 1 et 2 de la section précédente (à propos de la bibliothèque statique) pour mettre à jour les chemins d'accès include de votre compilateur, et utiliser le fichier d'en-tête approprié.

  2. Ajoutez un chemin au format suivant dans les chemins d'accès de votre bibliothèque d'inclusion :

    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. Appelez la fonction add_gamesdk_target avec le dossier contenant le gamesdk :

    // Use a relative or absolute path.
    add_gamesdk_target(PACKAGE_DIR path/to/gamesdk)
    
  3. Dans les target_link_libraries de votre bibliothèque native, ajoutez oboe en tant que dépendance :

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

Pour une utilisation avancée de CMake, consultez le fichier source gamesdk.cmake.

Étapes suivantes : utiliser Oboe

Pour lire ou enregistrer du contenu audio avec Oboe, créez et activez un ou plusieurs flux audio, et utilisez des rappels pour échanger des données audio entre vos périphériques d'entrée/sortie audio et votre application. Consultez la page Utiliser Oboe.