כדי להוסיף קוד C ו-C++ לפרויקט Android, צריך להוסיף את הקוד לקטע
הספרייה cpp
במודול הפרויקט. במהלך יצירת הפרויקט,
הקוד מורכב בספריית נייטיב ש-Gradle יכול לארוז עם האפליקציה שלכם.
לאחר מכן, קוד Java או Kotlin יכולים לקרוא לפונקציות בספרייה המקורית
דרך ממשק Java Native Interface (JNI). מידע נוסף על השימוש ב-JNI
framework, לקרוא טיפים של JNI ל-
ב-Android.
Android Studio תומך ב-CMake, שהוא שימושי לפרויקטים בפלטפורמות שונות.
Android Studio תומך גם ב-ndk-build
,
יכולים להיות מהירים יותר מ-CMake, אבל הם תומכים רק ב-Android. שימוש ב-CMake וגם
בשלב הזה אין תמיכה ב-ndk-build
באותו מודול.
כדי לייבא ספריית ndk-build
קיימת ל-Android Studio
פרויקט, ללמוד איך
מקשרים את Gradle לפרויקט הספרייה המקורית.
בדף הזה מוסבר איך להגדיר את Android Studio עם את כלי ה-build הנחוצים, יוצרים פרויקט חדש באמצעות C/C++ ומוסיפים קובצי C/C++ חדשים לפרויקט.
כדי להוסיף קוד נייטיב לפרויקט קיים, יש לבצע את השלבים הבאים:
-
ליצור קובצי מקור נייטיב חדשים ולהוסיף את הקוד
קבצים לפרויקט Android Studio.
- אפשר לדלג על השלב הזה אם כבר יש לכם קוד Native או אם אתם רוצים לייבא ספרייה מותאמת שנוצרה מראש.
-
מגדירים את CMake ל-
לפתח את קוד המקור המקורי בספרייה. יש צורך בסקריפט ה-build הזה
אם אתם מייבאים ומקשרים לפלטפורמה או לפלטפורמה שנוצרו מראש.
של הספריות.
- אם יש לכם ספרייה מותאמת שכבר כוללת
סקריפט build מסוג
CMakeLists.txt
או משתמש ב-ndk-build
וכוללAndroid.mk
build של סקריפט, דילוג על השלב הזה.
- אם יש לכם ספרייה מותאמת שכבר כוללת
סקריפט build מסוג
-
הגדרה
Gradle על ידי מתן נתיב ל-CMake או
ndk-build
סקריפט. Gradle משתמשת בסקריפט ה-build כדי לייבא את קוד המקור פרויקט Android Studio ואריזתם את ספריית הנייטיב שלכם באפליקציה.
אחרי שמגדירים את הפרויקט, ניגשים לפונקציות המקוריות מ: בקוד Java או Kotlin באמצעות framework של JNI. כדי ליצור ולהפעיל את האפליקציה, לוחצים על Run .
הערה: אם בפרויקט הקיים שלכם נעשה שימוש במודלים של
ndkCompile
, מעבר לשימוש ב-CMake או
ndk-build
הורדת ה-NDK וכלי פיתוח
כדי להדר ולנפות באגים בקוד המקורי של האפליקציה, צריך את הדברים הבאים רכיבים:
- ערכת הפיתוח המקורית של Android (NDK): ערכת כלים שמאפשרת להשתמש בקוד C ו-C++ עם Android. NDK מספקת ספריות פלטפורמה שמאפשרות לנהל מודעות פעילויות וגישה לרכיבי מכשיר פיזי, כמו חיישנים ומגע של הקלט.
-
CMake:
כלי build חיצוני שפועל לצד Gradle כדי לפתח
לספרייה. אין צורך ברכיב הזה אם בכוונתך להשתמש רק
ndk-build
- LLDB: בכלי לניפוי באגים ב-Android Studio שמנפות באגים בקוד מקורי.
למידע על התקנת הרכיבים האלה, ראו התקנה והגדרה של NDK ו-CMake.
יצירת פרויקט חדש עם תמיכה ב-C/C++
כדי ליצור פרויקט חדש עם תמיכה בקוד Native, התהליך דומה לתהליך הבא: יצירת מערכת Android אחרת פרויקט של Studio, אבל באמצעות שלב נוסף:
- בקטע Choose your project באשף, בוחרים את סוג הפרויקט Native C++.
- לוחצים על הבא.
- ממלאים את כל שאר השדות בקטע הבא של האשף.
- לוחצים על הבא.
-
בקטע התאמה אישית של תמיכת C++ באשף, אפשר להתאים אישית
בפרויקט בעזרת השדה C++ Standard.
- משתמשים ברשימה הנפתחת כדי בוחרים באיזו סטנדרטיזציה של C++ רוצים להשתמש. בוחרים באפשרות Toolchain ברירת המחדל משתמשת בהגדרת ברירת המחדל של CMake.
- לוחצים על סיום.
לאחר שיצירת הפרויקט החדש ב-Android Studio מסתיימת, פותחים את בחלונית פרויקט מצד שמאל של סביבת הפיתוח המשולבת (IDE) ובוחרים את תצוגת Android מהתפריט. כפי שמוצג באיור 1, מערכת Android מערכת Studio מוסיפה את הקבוצה cpp:
הערה: התצוגה הזו לא משקפת את היררכיית הקבצים בפועל בדיסק, אבל מקבצים קבצים דומים כדי לפשט את הניווט בפרויקט.
בקבוצה cpp ניתן למצוא את כל
קובצי מקור, כותרות, סקריפטים לבנות עבור CMake או ndk-build
,
ספריות שהן חלק מהפרויקט. לפרויקטים חדשים, Android Studio
יוצר קובץ מקור לדוגמה C++ , native-lib.cpp
ומציב אותו
בספרייה src/main/cpp/
של מודול האפליקציה. הדוגמה הזו
מספק פונקציית C++ פשוטה, stringFromJNI()
,
מחזירה את המחרוזת "Hello from C++"
. הוראות להוספה
קובצי מקור לפרויקט שלכם בסעיף כיצד
ליצור קובצי מקור מותאמים חדשים.
בדומה לאופן שבו קבצים מ-build.gradle
מסבירים ל-Gradle איך ליצור
לאפליקציה שלך, ל-CMake ול-ndk-build
נדרש סקריפט build כדי לדעת איך ליצור
בספרייה המקורית. בשביל פרויקטים חדשים, Android Studio יוצר גרסת CMake
CMakeLists.txt
, ולמקם אותו בתיקיית השורש של המודול.
למידע נוסף על התוכן של סקריפט build זה, ניתן לקרוא
הגדרת CMake.
יצירה והפעלה של אפליקציה לדוגמה
כשלוחצים על הפעלה , Android Studio בונה ומפעילים אפליקציה שמציגה את הטקסט "שלום מ-C++ " ב אמולטור או מכשיר Android. בסקירה הכללית הבאה מתוארים האירועים בתהליך היצירה וההפעלה של האפליקציה לדוגמה:
- קריאות Gradle בסקריפט build חיצוני
CMakeLists.txt
- CMake עוקב אחר פקודות בסקריפט ה-build כדי להדר מקור C++
קובץ,
native-lib.cpp
, בספריית אובייקטים משותפים ובשמות אותוlibnative-lib.so
. Gradle, ולאחר מכן אורזת אותו באפליקציה. - במהלך זמן הריצה,
MainActivity
של האפליקציה טוענת את המודעות המותאמות ספרייה באמצעותSystem.loadLibrary()
. הפונקציה המקורית של הספרייה,stringFromJNI()
זמינה עכשיו לאפליקציה. -
MainActivity.onCreate()
מתקשרת אלstringFromJNI()
, שמחזיר את הערך"Hello from C++"
ומשתמש בו כדי לעדכן אתTextView
.
כדי לוודא ש-Gradle חבילה שכוללת את ספריית הנייטיב באפליקציה, צריך להשתמש ב כלי הניתוח ל-APK:
- בוחרים באפשרות Build > (בנייה >) חבילות Build / חבילות APK > בניית חבילות APK.
- בוחרים באפשרות Build > (בנייה >) ניתוח APK.
- בוחרים את ה-APK או את ה-AAB מספריית
app/build/outputs/
ולוחצים על OK. - כפי שמוצג באיור 2, ניתן לראות את
libnative-lib.so
החלון של כלי הניתוח של APK בקטעlib/<ABI>/
.
טיפ: אם אתם רוצים להתנסות באפליקציות אחרות ל-Android להשתמש בקוד נייטיב, לוחצים על קובץ > חדש > ייבוא דוגמה וגם בוחרים פרויקט לדוגמה מהרשימה Ndk.
יצירת קובצי מקור חדשים מסוג C/C++
כדי להוסיף קובצי מקור חדשים מסוג C/C++ לפרויקט קיים, מבצעים את הפעולות הבאות:
- אם עדיין אין לכם ספריית
cpp/
במקור הראשי של האפליקציה, צור אחת באופן הבא: - פותחים את החלונית פרויקט בצד שמאל של סביבת הפיתוח המשולבת (IDE), בוחרים את התצוגה Project מהתפריט.
- ניווט אל your-module > מקור.
- לוחצים לחיצה ימנית על הספרייה הראשית ובוחרים באפשרות חדש > Google Directory.
- מזינים את
cpp
בתור שם הספרייה ולוחצים על OK. - לוחצים לחיצה ימנית על הספרייה
cpp/
ובוחרים באפשרות New > (חדש >) C/C++ קובץ מקור. - נותנים שם לקובץ המקור, למשל
native-lib
. - בתפריט סוג בוחרים את סיומת הקובץ.
עבור קובץ המקור, למשל
.cpp
.- לוחצים על עריכת סוגי קבצים.
כדי להוסיף לתפריט סוגי קבצים אחרים, כמו
.cxx
או.hxx
. בקטע תוספי קבצים חדשים. בתיבת הדו-שיח שמופיעה, בוחרים סיומת קובץ אחרת התפריטים תוסף מקור ותוסף כותרת וגם לוחצים על OK (אישור).
- לוחצים על עריכת סוגי קבצים.
כדי להוסיף לתפריט סוגי קבצים אחרים, כמו
- כדי ליצור קובץ כותרת, לוחצים על יצירת קובץ כותרת משויכת.
- לוחצים על אישור.
אחרי שמוסיפים לפרויקט קובצי C/C++ חדשים, עדיין צריך להגדיר את CMake להכללת הקבצים ב בספרייה המקורית.
מקורות מידע נוספים
למידע נוסף על תמיכה בקוד C/C++ באפליקציה שלך, כדאי לנסות את הפעולות הבאות משאב.
שיעורי Lab
- יצירת Hello-CMake באמצעות Android Studio ב-Codelab הזה מוסבר איך להשתמש בתבנית CMake של Android Studio כדי להתחיל פיתוח פרויקט Android NDK.