تنظیمات ساخت خود را برای Oboe به روز کنید

دو راه برای گنجاندن کتابخانه Oboe در پروژه شما وجود دارد.

Oboe را با Gradle و CMake ادغام کنید

این دستورالعمل‌ها برای پروژه‌هایی هستند که از پلاگین Android Gradle نسخه 4.1.0 یا بالاتر با استفاده از وابستگی‌های بومی با CMake استفاده می‌کنند.

اگر پروژه شما از پلاگین Android Gradle نسخه 4.0 یا ndk-build به جای CMake استفاده می کند، روند کمی متفاوت است. استفاده از وابستگی های بومی را ببینید.

build.gradle را به روز کنید

برای افزودن Oboe به برنامه خود در حین استفاده از افزونه Android Gradle نسخه 4.1.0 یا بالاتر، موارد زیر را به فایل build.gradle برنامه خود اضافه کنید.

  1. وابستگی oboe به بخش dependencies اضافه کنید. در صورت لزوم، 1.5.0 با آخرین نسخه پایدار Oboe جایگزین کنید:

    dependencies {
        implementation 'com.google.oboe:oboe:1.5.0'
    }
    
  2. گزینه prefab را در قسمت buildFeatures فعال کنید.

    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. oboe::oboe به لیست کتابخانه‌های ارسال شده به دستور target_link_libraries مرتبط با فایل اجرایی اصلی خود اضافه کنید.

ادغام با Android Game SDK

  1. کتابخانه را دانلود کنید و آن را در سیستم کنترل منبع خود بررسی کنید.

  2. تغییرات زیر را در تنظیمات ساخت پروژه خود اعمال کنید.

کتابخانه ایستا

هنگامی که با Android Game SDK ادغام می‌شوید، به صورت ایستا به نسخه‌ای از کتابخانه Oboe که برای ترکیب ABI، سطح API، NDK و STL کامپایل شده است، پیوند می‌دهید:

  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. تابع add_gamesdk_target را با پوشه حاوی gamesdk فراخوانی کنید:

    // 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، یک یا چند جریان صوتی ایجاد و فعال کنید، و از تماس‌های برگشتی برای تبادل صدا بین دستگاه‌های ورودی/خروجی صوتی و برنامه‌تان استفاده کنید. استفاده از ابوا را ببینید.