Cập nhật chế độ cài đặt bản dựng cho Oboe

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.

  1. Thêm phần phụ thuộc oboe vào phần dependencies. 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'
    }
    
  2. Bật lựa chọn prefab trong phần buildFeatures.

    android {
        buildFeatures {
            prefab true
        }
    }
    
  3. Đị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.

  1. Thêm lệnh find_package như sau:

    find_package (oboe REQUIRED CONFIG)
    
  2. Thêm oboe::oboe vào danh sách thư viện được truyền vào lệnh target_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

  1. Tải thư viện xuống và kiểm tra thư viện đó trong hệ thống kiểm soát nguồn.

  2. 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:

  1. Thêm gamesdk/include vào trình biên dịch, bao gồm cả các đường dẫn.
  2. 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

  3. 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ế:

  1. 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.

  2. 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

  3. 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:

  1. 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")
    
  2. 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)
    
  3. Trong target_link_libraries dành cho thư viện gốc của bạn, hãy thêm oboe 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.