Có hai cách để kết hợp thư viện Oboe vào dự án.
Tích hợp Oboe với Gradle và CMake
Các hướng dẫn này dành cho các dự án sử dụng trình bổ trợ Android cho Gradle phiên bản 4.1.0 trở lên bằng cách sử dụng các phần phụ thuộc gốc với CMake.
Nếu dự án của bạn đang sử dụng trình bổ trợ Android cho Gradle phiên bản 4.0 hoặc ndk-build
thay vì CMake, thì quá trình này sẽ hơi khác. Xem nội dung Sử dụng phần phụ thuộc gốc.
Cập nhật build.gradle
Để thêm Oboe vào ứng dụng khi đang sử dụng trình bổ trợ Android cho Gradle phiên bản 4.1.0 trở lên, hãy thực hiện thêm các thao tác sau đối với tệp build.gradle
của ứng dụng.
Thêm phần phụ thuộc
oboe
vào phầndependencies
. Nếu cần, hãy thay thế1.5.0
bằng phiên bản ổn định mới nhất của Oboe:dependencies { implementation 'com.google.oboe:oboe:1.5.0' }
Bật lựa chọn
prefab
trong phầnbuildFeatures
.android { buildFeatures { prefab true } }
Định cấu hình ứng dụng để sử dụng STL dùng chung:
android { defaultConfig { externalNativeBuild { cmake { arguments "-DANDROID_STL=c++_shared" } } } }
Cập nhật CMakeLists.txt
Để thêm Oboe, bạn cần thực hiện thêm 2 thao tác vào tệp CMakeLists.txt
của ứng dụng.
Thêm lệnh
find_package
như sau:find_package (oboe REQUIRED CONFIG)
Thêm
oboe::oboe
vào danh sách thư viện được truyền vào lệnhtarget_link_libraries
liên kết với tệp thực thi chính.
Tích hợp với SDK cho trò chơi Android
Tải thư viện xuống và kiểm tra thư viện đó trong hệ thống kiểm soát nguồn.
Thực hiện các thay đổi sau đối với chế độ cài đặt bản dựng của dự án.
Thư viện tĩnh
Khi tích hợp với SDK dành cho trò chơi Android, bạn liên kết tĩnh đến một phiên bản của thư viện Oboe được biên dịch cho tổ hợp ABI, API cấp, NDK và STL đã chọn:
- Thêm
gamesdk/include
vào trình biên dịch, bao gồm cả các đường dẫn. Thêm đường dẫn của biểu mẫu sau trong đường dẫn thư viện trình liên kết:
gamesdk/libs/architecture_APIapiLevel_NDKndkVersion_stlVersion_Release
Ví dụ:
gamesdk/libs/arm64-v8a_API24_NDK18_cpp_static_Release
Thêm
-loboe_static
vào lệnh của trình liên kết.
Bạn không cần phải đóng gói thư viện chia sẻ của liboboe.so
, nghĩa là liên kết tĩnh sẽ làm cho đoạn mã của bạn ngắn gọn hơn.
Thư viện chia sẻ
Nếu tổ hợp ABI, API cấp, NDK và STL cần cho thư viện tĩnh không sẵn có trong chế độ cài đặt, thì bạn có thể liên kết với thư viện dùng chung thay thế:
Làm theo các bước 1 và 2 trong mục trước (về thư viện tĩnh) để cập nhật trình biên dịch bao gồm đường dẫn và sử dụng tệp tiêu đề phù hợp.
Thêm đường dẫn của biểu mẫu sau trong đường dẫn thư viện trình liên kết:
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")
Gọi hàm
add_gamesdk_target
với thư mục chứa gamesdk:// Use a relative or absolute path.
add_gamesdk_target(PACKAGE_DIR path/to/gamesdk)
Trong
target_link_libraries
dành cho thư viện gốc của bạn, hãy thêmoboe
làm phần phụ thuộc:// The casing of OpenSLES is important.
target_link_libraries(native-lib oboe OpenSLES ...)
Để sử dụng tính năng nâng cao của CMake, hãy xem tệp nguồn gamesdk.cmake
.
Các bước tiếp theo: sử dụng Oboe
Để phát hoặc ghi âm bằng Oboe, hãy tạo và kích hoạt một hoặc nhiều luồng âm thanh và dùng lệnh gọi lại để trao đổi âm thanh giữa thiết bị âm thanh đầu vào/đầu ra và ứng dụng. Xem phần Sử dụng Oboe.