הסקריפט ndk-build יוצר פרויקטים שנעשה בהם שימוש בגרסת ה-build מבוססת-היצרן של NDK
המערכת. יש תיעוד ספציפי יותר עבור
Android.mk ו-
נעשה שימוש בהגדרת Application.mk
מאת ndk-build.
פנימי
הרצת הסקריפט ndk-build מקבילה להרצת הפקודה הבאה:
$GNUMAKE -f <ndk>/build/core/build-local.mk <parameters>
$GNUMAKE נקודות ל-GNU Maker מגרסה 3.81 ואילך, וגם
<ndk> נקודות לספריית ההתקנה של ה-NDK. אפשר להשתמש
כדי להפעיל ndk-build מסקריפטים אחרים של מעטפת, או אפילו
ליצור קבצים.
הפעלה משורת הפקודה
הסקריפט ndk-build נמצא בספריית ההתקנה של NDK ברמה העליונה. כדי להריץ אותו
משורת הפקודה, להפעיל אותו בתוך ספריית הפרויקט של האפליקציה או מתחתיה.
לדוגמה:
$ cd <project> $ <ndk>/ndk-build
בדוגמה הזו, <project> מפנה אל
תיקיית השורש של הפרויקט, ו-<ndk> היא הספרייה שבה
התקנתם את ה-NDK.
אפשרויות
כל הפרמטרים ל-ndk-build מועברים ישירות ל-GNU make הבסיסי
שמריצה את הסקריפטים של build NDK. שילוב של ndk-build עם
בצורה ndk-build <option>. לדוגמה:
$ ndk-build clean
האפשרויות הבאות זמינות:
-
clean -
מסירים את כל הקבצים הבינאריים שנוצרו בעבר.
הערה: ב-Mac OS X, מריצים את
ndk-build cleanעם מספר גבוה של הפעלות מקבילות עלול לגרום לשגיאת build כוללת את ההודעה הבאה:rm: fts_read: No such file or directory
כדי למנוע את הבעיה, מומלץ לא להשתמש ב
-jNאו בחירה בערך קטן יותר עבורN, כמו 2. -
V=1 - השקת build והצגת פקודות build.
-
-B - אילוץ בנייה מחדש מלאה.
-
-B V=1 - לאלץ הרצה מלאה של בנייה מחדש והצגת פקודות build.
-
NDK_LOG=1 - להציג הודעות יומן פנימיות של NDK (משמשות לניפוי באגים ב-NDK עצמו).
-
NDK_DEBUG=1 - אילוץ גרסת build שאפשר לבצע לניפוי באגים (ראו טבלה 1).
-
NDK_DEBUG=0 - אילוץ גרסת build של גרסה (ראו טבלה 1).
-
NDK_HOST_32BIT=1 - צריך להשתמש ב-toolchain תמיד במצב 32-bit.
-
NDK_APPLICATION_MK=<file> -
Build, באמצעות קובץ
Application.mkספציפי שמצביע עליו משתנהNDK_APPLICATION_MK. -
-C <project> -
צור את הקוד המקורי עבור נתיב הפרויקט שנמצא בכתובת
<project>. מועיל אם לא רוציםcdאליו במסוף.
גרסאות build שניתנות לניפוי באגים לעומת גרסאות build
משתמשים באפשרות NDK_DEBUG, ובמקרים מסוימים,
AndroidManifest.xml כדי לציין גרסת build של ניפוי באגים או גרסה,
התנהגות שקשורה לאופטימיזציה והוספת סמלים. בטבלה 1 רואים את הערכים
תוצאות של כל שילוב אפשרי של הגדרות.
טבלה 1. תוצאות של NDK_DEBUG (שורת פקודה) ו
android:debuggable שילובים (מניפסט).
| הגדרת מניפסט | NDK_DEBUG=0 | NDK_DEBUG=1 | NDK_DEBUG לא צוין |
|---|---|---|---|
| android:debuggable="true" | ניפוי באגים; סמלים; מותאם*1 | ניפוי באגים; סמלים; ללא אופטימיזציה*2 | (כמו NDK_DEBUG=1) |
| android:debuggable="false" | השקה; סמלים; בוצעה אופטימיזציה | השקה; סמלים; לא בוצעה אופטימיזציה | השקה; ללא סמלים. מותאם*3 |
*2: ברירת המחדל להרצה של
ndk-gdb.*3: מצב ברירת מחדל.
הערה: הערך 'NDK_DEBUG=0' הוא שווה ערך ל- 'APP_OPTIM=publish', והידור באמצעות '-O2'. הערך 'NDK_DEBUG=1' הוא שווה ערך ל- 'APP_OPTIM=debug' ב-'Application.mk', והידור באמצעות '-O0'. מידע נוסף על האפליקציה 'APP_OPTIM' זמין בכתובת Application.mk.
התחביר בשורת הפקודה הוא, לדוגמה:
$ ndk-build NDK_DEBUG=1
הדרישות
יש צורך ב-GNU Make 4 כדי להשתמש ב-ndk-build או ב-NDK באופן כללי. ה-NDK כולל
עותק משלך של GNU Maker, והוא ישתמש בו אלא אם הגדרת $GNUMAKE
כך שיצביע על יצרן לא מתאים.
מסדי נתונים של הידור JSON
ב-NDK r18 ואילך, ndk-build יכול ליצור מסד נתונים הידור בפורמט JSON.
אפשר להשתמש ב-ndk-build compile_commands.json כדי ליצור את מסד הנתונים
מבלי לבנות את הקוד, או ndk-build GEN_COMPILE_COMMANDS_DB=true אם
לבנות וליצור את מסד הנתונים תופעת לוואי.