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 tuỳ 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
Thêm
-loboe -lOpenSLES
vào lệnh của trình liên kết.
Sử dụng CMake (chỉ dành cho thư viện tĩnh)
Nếu bạn đang sử dụng CMake, hãy xem tệp gamesdk/samples/bouncyball/app/CMakeLists.txt
trong SDK đã tải xuống để tìm hiểu ví dụ về cấu hình CMake. Bao gồm cả một tệp tiện ích có tên là gamesdk/samples/gamesdk.cmake
. Tệp này thực hiện quy trình kiểm tra cuối cùng, thêm trình biên dịch phù hợp cùng với các đường dẫn và tạo mục tiêu mà bạn có thể sử dụng để liên kết thư viện.
Để sử dụng tiện ích gamesdk.cmake
:
Đưa tệp này vào trong
CMakeLists.txt
của bạn:// 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.