Есть два способа включить библиотеку Oboe в ваш проект.
Интеграция Oboe с Gradle и CMake
Эти инструкции предназначены для проектов, использующих плагин Android Gradle версии 4.1.0 или выше с использованием собственных зависимостей CMake.
Если ваш проект использует плагин Android Gradle версии 4.0 или ndk-build вместо CMake, процесс немного отличается. См. раздел Использование собственных зависимостей .
Обновить build.gradle
Чтобы добавить Oboe в ваше приложение при использовании плагина Android Gradle версии 4.1.0 или выше, внесите следующие дополнения в файл build.gradle вашего приложения.
Добавьте зависимость
oboeв разделdependencies. При необходимости замените1.5.0на последнюю стабильную версию Oboe:dependencies { implementation 'com.google.oboe:oboe:1.5.0' }Включите опцию
prefabв разделеbuildFeatures.android { buildFeatures { prefab true } }Настройте свое приложение для использования общего STL:
android { defaultConfig { externalNativeBuild { cmake { arguments "-DANDROID_STL=c++_shared" } } } }
Обновить CMakeLists.txt
Для добавления Oboe требуется внести два дополнения в файл CMakeLists.txt вашего приложения.
Добавьте следующую команду
find_package:find_package (oboe REQUIRED CONFIG)Добавьте
oboe::oboeв список библиотек, передаваемых командеtarget_link_libraries, связанной с вашим основным исполняемым файлом.
Интеграция с Android Game SDK
Загрузите библиотеку и зарегистрируйте ее в своей системе управления версиями.
Внесите следующие изменения в настройки сборки вашего проекта.
Статическая библиотека
При интеграции с Android Game SDK вы статически подключаетесь к версии библиотеки Oboe, скомпилированной для заданной комбинации ABI, уровня API, NDK и STL:
- Добавьте
gamesdk/includeв пути включения вашего компилятора. Добавьте путь следующего вида в пути библиотеки компоновщика:
gamesdk/libs/architecture_APIapiLevel_NDKndkVersion_stlVersion_Release
Например:
gamesdk/libs/arm64-v8a_API24_NDK18_cpp_static_ReleaseДобавьте
-loboe_staticк команде компоновщика.
Вам не нужно объединять общую библиотеку liboboe.so , а это значит, что статическая компоновка позволяет существенно уменьшить размер кода.
Общая библиотека
Если комбинация ABI, уровня API, NDK и STL, необходимая для статической библиотеки, недоступна для ваших настроек, вы можете вместо этого подключиться к общей библиотеке:
Выполните шаги 1 и 2 из предыдущего раздела (о статической библиотеке), чтобы обновить пути включения вашего компилятора, и используйте соответствующий заголовочный файл.
Добавьте путь следующего вида в пути библиотеки компоновщика:
gamesdk/libs/architectureAPIapiLevelNDKndkVersion_stlVersion_Release/lib/oboe
Add
-loboe -lOpenSLESto 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")Вызовите функцию
add_gamesdk_targetс папкой, содержащей gamesdk:// Use a relative or absolute path.
add_gamesdk_target(PACKAGE_DIR path/to/gamesdk)В
target_link_librariesдля вашей собственной библиотеки добавьтеoboeкак зависимость:// The casing of OpenSLES is important.
target_link_libraries(native-lib oboe OpenSLES ...)
Для расширенного использования CMake см. исходный файл gamesdk.cmake .
Следующие шаги: использование гобоя
Чтобы воспроизвести или записать звук с помощью Oboe, создайте и активируйте один или несколько аудиопотоков, а также используйте обратные вызовы для обмена аудиоданными между устройствами ввода/вывода звука и вашим приложением. См. раздел «Использование Oboe» .