עדכון הגדרות ה-build של 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 בגרסה היציבה האחרונה של אבוב:

    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

כדי להוסיף 'אבוב', נדרשות שתי תוספות לקובץ CMakeLists.txt של האפליקציה.

  1. מוסיפים את הפקודה הבאה של find_package:

    find_package (oboe REQUIRED CONFIG)
    
  2. הוספת oboe::oboe לרשימת הספריות שמועברות אל פקודת target_link_libraries שמשויכת לקובץ ההפעלה הראשי.

שילוב עם ה-SDK של המשחק ב-Android

  1. מורידים את הספרייה ובודקים אותו לתוך מערכת בקרת המקורות.

  2. צריך לבצע את השינויים הבאים בהגדרות ה-build של הפרויקט.

ספרייה סטטית

בשילוב עם SDK ל-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 מהקטע הקודם (מידע על הספרייה הסטטית) כדי לעדכן את המהדר (compiler) שלכם, לכלול נתיבים ולהשתמש בקובץ הכותרת המתאים.

  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 עם התיקייה שמכילה the 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, צריך ליצור ולהפעיל אודיו אחד או יותר בסטרימינג, ולהשתמש בקריאות חוזרות כדי להעביר אודיו בין קלט/פלט האודיו מכשירים והאפליקציה שלך. ראו שימוש אבוב.