התקנה והגדרה של ה-NDK ו-CMake

כדי לקמפל ולפתור באגים בקוד מקורי של האפליקציה, צריך את הרכיבים הבאים:

  • ערכת הכלים לפיתוח מקומי של Android‏ (NDK): קבוצת כלים שמאפשרת להשתמש בקוד C ו-C++ ב-Android.
  • CMake: כלי build חיצוני שעובד לצד Gradle כדי ליצור את הספרייה המקורית. אין צורך ברכיב הזה אם אתם מתכננים להשתמש רק ב-ndk-build.
  • LLDB: מנקה הבאגים שבו Android Studio משתמשת כדי לנפות באגים בקוד מקורי. כברירת מחדל, LLDB יותקן לצד Android Studio.

בדף הזה מוסבר איך להתקין את הרכיבים האלה באופן אוטומטי, או באמצעות Android Studio או הכלי sdkmanager כדי להוריד ולהתקין אותם באופן ידני.

התקנה אוטומטית של NDK ו-CMake

אם אישרתם מראש את הרישיונות של NDK ו-CMake, הפלאגין Android Gradle בגרסה 4.2.0 ואילך יכול להתקין אותם באופן אוטומטי בפעם הראשונה שתיצרו את הפרויקט. אם כבר קראתם את תנאי הרישיון והסכמתם להם, תוכלו לאשר מראש את הרישיונות בסקריפטים באמצעות הפקודה הבאה:

   yes | ${sdk}/cmdline-tools/latest/bin/sdkmanager --licenses

התקנה של NDK ו-CMake

כשמתקינים את ה-NDK, מערכת Android Studio בוחרת את ה-NDK העדכני ביותר שזמין. ברוב הפרויקטים, התקנת גרסת ברירת המחדל הזו של NDK מספיקה. עם זאת, אם אתם צריכים גרסה ספציפית אחת או יותר של NDK בפרויקט, תוכלו להוריד ולהגדיר גרסאות ספציפיות. כך תוכלו לוודא שאפשר ליצור גרסאות build זהות בפרויקטים שכל אחד מהם תלוי בגרסה ספציפית של NDK. Android Studio מתקין את כל הגרסאות של NDK בספרייה android-sdk/ndk/.

כדי להתקין את CMake ואת NDK שמוגדרת כברירת מחדל ב-Android Studio:

  1. בפרויקט פתוח, לוחצים על Tools (כלים) > SDK Manager (מנהל SDK).

  2. לוחצים על הכרטיסייה SDK Tools.

  3. מסמנים את התיבות NDK (Side by side) ו-CMake.

    תמונה של SDK Manager איור 1. החלון SDK Tools שבו מוצגת האפשרות NDK (Side by side)

  4. לוחצים על אישור.

    בתיבת הדו-שיח תופיע הודעה על נפח האחסון שחבילה של NDK תופסת בדיסק.

  5. לוחצים על אישור.

  6. בסיום ההתקנה, לוחצים על סיום.

  7. קובץ ה-build מסתנכרן באופן אוטומטי עם הפרויקט, והמערכת מבצעת build. מתקנים את השגיאות שמופיעות.

הגדרת גרסה ספציפית של CMake

מנהל ה-SDK כולל את גרסת ה-3.6.0 של CMake ואת גרסת ה-3.10.2. פרויקטים שלא מוגדרת להם גרסת CMake ספציפית נוצרים באמצעות CMake 3.10.2. כדי להגדיר את גרסת CMake, מוסיפים את הטקסט הבא לקובץ build.gradle של המודול:

Groovy

android {
    ...
    externalNativeBuild {
        cmake {
            ...
            version "cmake-version"
        }
    }
}

Kotlin

android {
    ...
    externalNativeBuild {
        cmake {
            ...
            version = "cmake-version"
        }
    }
}

אם אתם רוצים להשתמש בגרסה של CMake שלא כלולה ב-SDK Manager, עליכם לפעול לפי השלבים הבאים:

  1. מורידים ומתקינים את CMake מהאתר הרשמי של CMake.
  2. מציינים את גרסת CMake שבה רוצים ש-Gradle תשתמש בקובץ build.gradle של המודול.
  3. מוסיפים את הנתיב להתקנת CMake למשתנה הסביבה PATH או כוללים אותו בקובץ local.properties של הפרויקט, כפי שמוצג. אם Gradle לא מצליח למצוא את גרסת CMake שציינתם בקובץ build.gradle, תופיע הודעת שגיאה ב-build.

    # If you set this property, Gradle no longer uses PATH to find CMake.
    cmake.dir = "path-to-cmake"</pre>
    
  4. אם מערכת ה-build של Ninja עדיין לא מותקנת בתחנת העבודה, עוברים אל האתר הרשמי של Ninja ומורידים ומתקינים את הגרסה האחרונה של Ninja שזמינה למערכת ההפעלה שלכם. חשוב להוסיף גם את הנתיב להתקנת Ninja למשתנה הסביבה PATH.

התקנת גרסה ספציפית של NDK

כדי להתקין גרסה ספציפית של NDK:

  1. בפרויקט פתוח, לוחצים על Tools (כלים) > SDK Manager (מנהל SDK).

  2. לוחצים על הכרטיסייה SDK Tools.

  3. מסמנים את התיבה Show Package Details.

  4. מסמנים את התיבה NDK (Side by side) ואת התיבות שמתחתיה שמתאימות לגרסאות ה-NDK שרוצים להתקין. Android Studio מתקין את כל הגרסאות של NDK בספרייה android-sdk/ndk/.

    תמונה של חלון SDK Tools איור 2. החלון SDK Tools שבו מוצגות האפשרויות של NDK (Side by side)

  5. לוחצים על אישור.

    תיבת דו-שיח תציג את נפח האחסון שנצרך על ידי חבילות ה-NDK.

  6. לוחצים על אישור.

  7. בסיום ההתקנה, לוחצים על סיום.

  8. קובץ ה-build מסתנכרן באופן אוטומטי עם הפרויקט, והמערכת מבצעת build. מתקנים את השגיאות שמופיעות.

  9. מגדירים כל מודול עם גרסת ה-NDK שבה רוצים להשתמש. כשמשתמשים ב-Android Studio 3.6 ואילך, אם לא מציינים את הגרסה, הפלאגין של Android Gradle בוחר גרסה שהוא יודע שהיא תואמת.

הגדרת גרסאות ספציפיות של NDK בפרויקט

יכול להיות שתצטרכו להגדיר את גרסת ה-NDK בפרויקט אם אחד מהמקרים הבאים רלוונטי אליכם:

  • הפרויקט עובר בירושה וצריך להשתמש בגרסאות ספציפיות של NDK ושל הפלאגין Android Gradle (AGP). למידע נוסף, ראו הגדרת NDK לפלאגין של Android Gradle.
  • יש לכם כמה גרסאות של NDK מותקנות ואתם רוצים להשתמש בגרסה ספציפית. במקרה כזה, מציינים את הגרסה באמצעות המאפיין android.ndkVersion בקובץ build.gradle של המודול, כפי שמתואר בדוגמת הקוד הבאה.

    Groovy

    android {
        ndkVersion "major.minor.build" // e.g.,  ndkVersion "21.3.6528147"
    }
    

    Kotlin

    android {
        ndkVersion = "major.minor.build" // e.g.,  ndkVersion "21.3.6528147"
    }
    

גרסת ברירת המחדל של NDK לכל גרסת AGP

לפני השקה, כל גרסה של AGP נבדקת לעומק עם מהדורת ה-NDK היציבה העדכנית ביותר באותו זמן. גרסת ה-NDK הזו משמשת ליצירת הפרויקטים שלכם אם לא ציינתם גרסת NDK בקובץ build.gradle. גרסת ברירת המחדל של NDK לגרסאות שונות של AGP מתועדת בנתוני הגרסה של AGP ובנתוני הגרסה הקודמים של AGP.