Oboe 빌드 설정 업데이트

Oboe 라이브러리를 프로젝트에 통합하는 방법에는 두 가지가 있습니다.

Gradle 및 CMake에 Oboe 통합

이 안내는 CMake가 포함된 네이티브 종속 항목을 사용하며 버전 4.1.0 이상의 Android Gradle 플러그인을 이용하는 프로젝트를 대상으로 합니다.

프로젝트에서 CMake 대신 Android Gradle 플러그인 버전 4.0 또는 ndk-build를 사용하는 경우 프로세스가 약간 다릅니다. 네이티브 종속 항목 사용을 참고하세요.

build.gradle 업데이트

Android Gradle 플러그인 버전 4.1.0 이상을 사용할 때 Oboe를 앱에 추가하려면 앱의 build.gradle 파일에 다음을 추가합니다.

  1. dependencies 섹션에 oboe 종속 항목을 추가합니다. 필요한 경우 1.5.0를 Oboe의 최신 안정화 버전으로 바꿉니다.

    dependencies {
        implementation 'com.google.oboe:oboe:1.5.0'
    }
    
  2. buildFeatures 섹션에서 prefab 옵션을 사용 설정합니다.

    android {
        buildFeatures {
            prefab true
        }
    }
    
  3. 공유된 STL을 사용하도록 앱을 구성합니다.

    android {
        defaultConfig {
            externalNativeBuild {
                cmake {
                    arguments "-DANDROID_STL=c++_shared"
                }
            }
        }
    }
    

CMakeLists.txt 업데이트

Oboe를 추가하려면 앱의 CMakeLists.txt 파일에 두 가지 항목을 추가해야 합니다.

  1. 다음 find_package 명령어를 추가합니다.

    find_package (oboe REQUIRED CONFIG)
    
  2. 기본 실행 파일과 연결되어 있는 target_link_libraries 명령어에 전달된 라이브러리 목록에 oboe::oboe를 추가합니다.

Android 게임 SDK에 통합

  1. 라이브러리를 다운로드하고 소스 제어 시스템에 체크인합니다.

  2. 프로젝트의 빌드 설정을 다음과 같이 변경합니다.

정적 라이브러리

Android 게임 SDK에 통합하면 지정된 ABI, API 수준, NDK 및 STL 조합용으로 컴파일된 Oboe 라이브러리 버전에 정적으로 연결됩니다.

  1. 컴파일러 포함 경로에 gamesdk/include를 추가합니다.
  2. 링커 라이브러리 경로에 다음 형식의 경로를 추가합니다.

    gamesdk/libs/architecture_APIapiLevel_NDKndkVersion_stlVersion_Release
    

    예: gamesdk/libs/arm64-v8a_API24_NDK18_cpp_static_Release

  3. 링커 명령어에 -loboe_static를 추가합니다.

liboboe.so 공유 라이브러리를 번들로 묶을 필요가 없습니다. 즉, 정적 연결을 통해 코드 공간이 훨씬 더 줄어듭니다.

공유 라이브러리

정적 라이브러리에 필요한 ABI, API 수준, NDK 및 STL 조합을 설정에 이용할 수 없는 경우 대신 공유 라이브러리에 연결하면 됩니다.

  1. 이전 섹션(정적 라이브러리 관련)의 1단계와 2단계를 따라 컴파일러 포함 경로를 업데이트하고 적절한 헤더 파일을 사용합니다.

  2. 링커 라이브러리 경로에 다음 형식의 경로를 추가합니다.

    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. gamesdk가 포함된 폴더를 사용하여 add_gamesdk_target 함수 호출:

    // Use a relative or absolute path.
    add_gamesdk_target(PACKAGE_DIR path/to/gamesdk)
    
  3. 네이티브 라이브러리의 target_link_libraries에서 oboe를 종속 항목으로 추가:

    // The casing of OpenSLES is important.
    target_link_libraries(native-lib oboe OpenSLES ...) 
    

CMake의 고급 사용법은 gamesdk.cmake 소스 파일을 참고하세요.

다음 단계: Oboe 사용

Oboe로 오디오를 재생하거나 녹음하려면 하나 이상의 오디오 스트림을 만들어 활성화하고 콜백을 사용하여 오디오 입력/출력 기기와 앱 간에 오디오를 교환합니다. Oboe 사용을 참고하세요.