دو راه برای گنجاندن کتابخانه 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 برنامه خود اضافه کنید.
وابستگی
oboeرا به بخشdependenciesاضافه کنید. در صورت لزوم،1.5.0با آخرین نسخه پایدار Oboe جایگزین کنید:dependencies { implementation 'com.google.oboe:oboe:1.5.0' }گزینه
prefabرا در قسمتbuildFeaturesفعال کنید.android { buildFeatures { prefab true } }برنامه خود را برای استفاده از STL مشترک پیکربندی کنید:
android { defaultConfig { externalNativeBuild { cmake { arguments "-DANDROID_STL=c++_shared" } } } }
CMakeLists.txt را به روز کنید
افزودن Oboe به دو افزودن به فایل CMakeLists.txt برنامه شما نیاز دارد.
دستور
find_packageزیر را اضافه کنید:find_package (oboe REQUIRED CONFIG)oboe::oboeبه لیست کتابخانههای ارسال شده به دستورtarget_link_librariesمرتبط با فایل اجرایی اصلی خود اضافه کنید.
ادغام با Android Game SDK
کتابخانه را دانلود کنید و آن را در سیستم کنترل منبع خود بررسی کنید.
تغییرات زیر را در تنظیمات ساخت پروژه خود اعمال کنید.
کتابخانه ایستا
هنگامی که با Android Game SDK ادغام میشوید، به صورت ایستا به نسخهای از کتابخانه Oboe که برای ترکیب ABI، سطح API، NDK و STL کامپایل شده است، پیوند میدهید:
- مسیرهای شامل
gamesdk/includeرا به کامپایلر خود اضافه کنید. مسیری از فرم زیر را در مسیرهای کتابخانه پیوند دهنده خود اضافه کنید:
gamesdk/libs/architecture_APIapiLevel_NDKndkVersion_stlVersion_Release
به عنوان مثال:
gamesdk/libs/arm64-v8a_API24_NDK18_cpp_static_Release-loboe_staticبه دستور پیوند دهنده خود اضافه کنید.
نیازی نیست که کتابخانه مشترک liboboe.so را باندل کنید، به این معنی که پیوند استاتیک ردپای کد بسیار کوچکتری به شما می دهد.
کتابخانه مشترک
اگر ترکیب ABI، سطح API، NDK و STL مورد نیاز برای یک کتابخانه استاتیک برای تنظیمات شما در دسترس نیست، میتوانید در عوض به کتابخانه مشترک پیوند دهید:
مراحل 1 و 2 از بخش قبل (در مورد کتابخانه استاتیک) را برای به روز رسانی مسیرهای شامل کامپایلر خود دنبال کنید و از فایل هدر مناسب استفاده کنید.
مسیری از فرم زیر را در مسیرهای کتابخانه پیوند دهنده خود اضافه کنید:
gamesdk/libs/architectureAPIapiLevelNDKndkVersion_stlVersion_Release/lib/oboe
Add
-loboe -lOpenSLESto 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")تابع
add_gamesdk_targetرا با پوشه حاوی gamesdk فراخوانی کنید:// Use a relative or absolute path.
add_gamesdk_target(PACKAGE_DIR path/to/gamesdk)در
target_link_librariesبرای کتابخانه بومی خود،oboeبه عنوان وابستگی اضافه کنید:// The casing of OpenSLES is important.
target_link_libraries(native-lib oboe OpenSLES ...)
برای استفاده پیشرفته از CMake، فایل منبع gamesdk.cmake ببینید.
مراحل بعدی: استفاده از ابوا
برای پخش یا ضبط صدا با Oboe، یک یا چند جریان صوتی ایجاد و فعال کنید، و از تماسهای برگشتی برای تبادل صدا بین دستگاههای ورودی/خروجی صوتی و برنامهتان استفاده کنید. استفاده از ابوا را ببینید.