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

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

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

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

  3. מסמנים את התיבות NDK (זה לצד זה) ו-CMake.

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

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

    תיבת דו-שיח מציינת כמה מקום חבילת ה-NDK צורכת בדיסק.

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

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

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

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

SDK Manager כולל את הגרסה מפוצלת 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 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 שזמינה למערכת ההפעלה שלכם. חשוב גם להוסיף את הנתיב להתקנת הנינג'ה משתנה סביבה PATH.

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

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

  1. כאשר פרויקט פתוח, לוחצים על כלים > SDK Manager.

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

  3. מסמנים את התיבה Show Package Details (הצגת פרטי החבילה).

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

    תמונה של החלון &#39;כלים ל-SDK&#39; איור 2. החלון של SDK Tools מציג את האפשרות NDK (זה לצד זה) אפשרויות

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

    תיבת דו-שיח מציינת כמה מקום חבילות ה-NDK צורכות.

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

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

  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.