将 Oboe 库整合到您的项目中有两种方法。
使用 Gradle 和 CMake 整合 Oboe
这些说明适用于使用 Android Gradle 插件版本 4.1.0 或更高版本 使用 原生依赖项 与 CMake 的项目。
如果您的项目使用的是 Android Gradle 插件版本 4.0 或 ndk-build
而不是 CMake,则过程略有不同。请参阅 使用原生依赖项。
更新 build.gradle
要在使用 Android Gradle 插件版本 4.1.0 或更高版本时将 Oboe 添加到您的应用,请在您的应用的 build.gradle
文件中进行以下更改。
将
oboe
依赖项添加到dependencies
部分。如果需要,请将1.5.0
替换为 最新稳定版本的 Oboedependencies { implementation 'com.google.oboe:oboe:1.5.0' }
在
buildFeatures
部分中启用prefab
选项。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 游戏 SDK 整合
下载库 并将其检入您的源代码控制系统。
对项目的构建设置进行以下更改。
静态库
与 Android 游戏 SDK 整合时,您将静态链接到为给定 ABI、API 级别、NDK 和 STL 组合编译的 Oboe 库版本。
- 将
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
将
-loboe -lOpenSLES
添加到您的链接器命令中。
使用 CMake(仅限静态库)
如果您使用的是 CMake,请参阅下载的 SDK 中的 gamesdk/samples/bouncyball/app/CMakeLists.txt
文件,了解 CMake 配置的示例。它包括一个名为 gamesdk/samples/gamesdk.cmake
的实用程序文件,该文件执行最终检查,添加适当的编译器包含路径,并生成一个可以用于链接库的目标。
要使用 gamesdk.cmake
实用程序
在您的
CMakeLists.txt
中包含此文件// Use a relative or absolute path. For example, /home/yourusername/gamesdk // or C:\Android\gamesdk.
include("path/to/gamesdk/samples/gamesdk.cmake")
使用包含 gamesdk 的文件夹调用
add_gamesdk_target
函数// 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 播放或录制音频,请创建并激活一个或多个音频流,并使用回调在您的音频输入/输出设备和您的应用之间交换音频。请参阅 使用 Oboe。