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

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

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

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

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

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

   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. כשהפרויקט פתוח, לוחצים על כלים > SDK Manager.

  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 של המודול:

מגניב

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

Kotlin

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

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

  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 (זה לצד זה) ואת תיבות הסימון שמתחתיה בהתאם לגרסאות ה-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 של המודול, כפי שמוצג בדוגמת הקוד הבאה.

    מגניב

    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.