Есть два способа включить библиотеку Oboe в ваш проект.
Интегрируйте гобой с Gradle и CMake
Эти инструкции предназначены для проектов, использующих плагин Android Gradle версии 4.1.0 или выше, использующий собственные зависимости с CMake.
Если в вашем проекте вместо CMake используется плагин Android Gradle версии 4.0 или ndk-build
, процесс немного отличается. См. Использование собственных зависимостей .
Обновить build.gradle
Чтобы добавить гобой в свое приложение при использовании плагина Android Gradle версии 4.1.0 или выше, внесите следующие дополнения в файл build.gradle
вашего приложения.
Добавьте зависимость
oboe
в разделdependencies
. При необходимости замените1.5.0
на последнюю стабильную версию Гобоя: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
Для добавления гобоя необходимо добавить два дополнения в файл 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
.
Следующие шаги: использование гобоя
Чтобы воспроизводить или записывать звук с помощью гобоя, создайте и активируйте один или несколько аудиопотоков и используйте обратные вызовы для обмена звуком между вашими устройствами ввода/вывода звука и вашим приложением. См. « Использование гобоя» .