Есть два способа включить библиотеку 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 -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")
Вызовите функцию
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» .