כדי לקמפל ולפתור באגים בקוד מקורי של האפליקציה, צריך את הרכיבים הבאים:
- ערכת הכלים לפיתוח מקומי של 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:
כשהפרויקט פתוח, לוחצים על כלים > SDK Manager.
לוחצים על הכרטיסייה SDK Tools.
מסמנים את התיבות NDK (Side by side) ו-CMake.
איור 1. החלון SDK Tools שבו מוצגת האפשרות NDK (Side by side)
לוחצים על אישור.
בתיבת הדו-שיח תופיע הודעה על נפח האחסון שחבילה של NDK תופסת בדיסק.
לוחצים על אישור.
בסיום ההתקנה, לוחצים על סיום.
קובץ ה-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, צריך לפעול לפי השלבים הבאים:
- מורידים ומתקינים את CMake מהאתר הרשמי של CMake.
- מציינים את גרסת CMake שבה רוצים ש-Gradle תשתמש בקובץ
build.gradle
של המודול. מוסיפים את הנתיב להתקנת 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>
אם מערכת ה-build של Ninja עדיין לא מותקנת בתחנת העבודה, עוברים אל האתר הרשמי של Ninja ומורידים ומתקינים את הגרסה האחרונה של Ninja שזמינה למערכת ההפעלה שלכם. חשוב להוסיף גם את הנתיב להתקנת Ninja למשתנה הסביבה
PATH
.
התקנת גרסה ספציפית של NDK
כדי להתקין גרסה ספציפית של NDK:
בפרויקט פתוח, לוחצים על Tools (כלים) > SDK Manager (מנהל SDK).
לוחצים על הכרטיסייה SDK Tools.
מסמנים את התיבה Show Package Details.
מסמנים את התיבה NDK (זה לצד זה) ואת תיבות הסימון שמתחתיה בהתאם לגרסאות ה-NDK שרוצים להתקין. Android Studio מתקין את כל הגרסאות של ה-NDK בספרייה
android-sdk/ndk/
.איור 2. החלון SDK Tools שבו מוצגות האפשרויות של NDK (Side by side)
לוחצים על אישור.
תיבת דו-שיח תציג את נפח האחסון שנצרך על ידי חבילות ה-NDK.
לוחצים על אישור.
בסיום ההתקנה, לוחצים על סיום.
הפרויקט מסנכרן באופן אוטומטי את קובץ ה-build ומבצע build. מתקנים את השגיאות שמופיעות.
מגדירים כל מודול עם גרסת ה-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.