将 Oboe 库整合到项目中的方法有两种。
将 Oboe 与 Gradle 和 CMake 集成
以下说明适用于使用 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
替换为最新稳定版 (双簧管):dependencies { 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 Game SDK 集成
下载库并将其签入源代码控制系统。
对项目的构建设置进行以下更改。
静态库
与 Android Game 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
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")
针对包含 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。