יש שתי דרכים לשלב את ספריית Oboe בפרויקט.
שילוב של Oboe עם Gradle ו-CMake
ההוראות האלה מיועדות לפרויקטים שמשתמשים בגרסה 4.1.0 ואילך של Android Gradle plugin באמצעות native dependencies עם CMake.
אם הפרויקט שלכם משתמש בפלאגין Android Gradle בגרסה 4.0 או בגרסה ndk-build
במקום ב-CMake, התהליך שונה מעט. איך משתמשים בתלות מקורית
עדכון הקובץ build.gradle
כדי להוסיף את Oboe לאפליקציה כשמשתמשים בגרסה 4.1.0 של Android Gradle Plugin או בגרסה מתקדמת יותר, צריך להוסיף את השורות הבאות לקובץ 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
שמשויכת לקובץ הניתן להפעלה הראשי.
שילוב עם SDK בשביל משחק Android
מורידים את הספרייה ומכניסים אותה למערכת בקרת הגרסאות.
מבצעים את השינויים הבאים בהגדרות הבנייה של הפרויקט.
ספרייה סטטית
כשמשלבים את Android Game SDK, מבצעים קישור סטטי לגרסה של ספריית Oboe שעברה קומפילציה עבור שילוב נתון של ABI, רמת API, NDK ו-STL:
- מוסיפים את
gamesdk/include
לנתיבי ההכללה של הקומפיילר. מוסיפים נתיב מהצורה הבאה לנתיבי הספרייה של ה-linker:
gamesdk/libs/architecture_APIapiLevel_NDKndkVersion_stlVersion_Release
לדוגמה:
gamesdk/libs/arm64-v8a_API24_NDK18_cpp_static_Release
מוסיפים את
-loboe_static
לפקודת ה-linker.
אין צורך לארוז את הספרייה המשותפת liboboe.so
, מה שאומר שקישור סטטי מאפשר לכם להקטין משמעותית את נפח הקוד.
ספרייה משותפת
אם השילוב של ABI, רמת API, NDK ו-STL שנדרש לספרייה סטטית לא זמין בהגדרות שלכם, אתם יכולים לקשר לספרייה המשותפת במקום זאת:
מבצעים את שלבים 1 ו-2 מהקטע הקודם (על הספרייה הסטטית) כדי לעדכן את נתיבי ההכללה של הקומפיילר, ומשתמשים בקובץ הכותרת המתאים.
מוסיפים נתיב מהצורה הבאה לנתיבי הספרייה של ה-linker:
gamesdk/libs/architectureAPIapiLevelNDKndkVersion_stlVersion_Release/lib/oboe
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:
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
כדי להפעיל או להקליט אודיו באמצעות Oboe, צריך ליצור ולהפעיל זרם אודיו אחד או יותר, ולהשתמש בפונקציות קריאה חוזרת כדי להעביר אודיו בין מכשירי קלט/פלט האודיו לבין האפליקציה. מידע נוסף זמין במאמר בנושא שימוש ב-Oboe.