أضِف رمز C وC++ إلى مشروع Android عن طريق وضع الرمز في دليل
cpp
في وحدة مشروعك. عند إنشاء مشروعك، يتم تجميع هذا الرمز البرمجي
في مكتبة أصلية يمكن لمجموعة Gradle حزمها مع تطبيقك.
ويمكن بعد ذلك لرمز Java أو Kotlin استدعاء الدوال في مكتبتك الأصلية
من خلال واجهة Java Native Interface (JNI). لمزيد من المعلومات عن استخدام إطار عمل JNI
، يُرجى الاطّلاع على نصائح لاستخدام JNI
في Android.
يتوافق "استوديو Android" مع CMake، وهو مفيد للمشاريع المتوافقة مع جميع الأنظمة الأساسية.
يتوافق Android Studio أيضًا مع ndk-build
، والذي
يمكن أن يكون أسرع من CMake، ولكنه متوافق مع Android فقط. لا يمكن حاليًا استخدام كلّ من CMake و
ndk-build
في الوحدة نفسها.
لاستيراد مكتبة ndk-build
حالية إلى مشروعك في IDE، تعرَّف على كيفية
ربط Gradle بمشروع مكتبتك الأصلية.
توضّح لك هذه الصفحة كيفية إعداد "استوديو Android" باستخدام أدوات الإنشاء اللازمة وإنشاء مشروع جديد يتيح استخدام لغة C/C++ وإضافة ملفات C/C++ جديدة إلى مشروعك.
إذا كنت تريد بدلاً من ذلك إضافة رمز أصلي إلى مشروع حالي، اتّبِع الخطوات التالية:
-
أنشئ ملفات مصدر أصلية جديدة وأضِف
الملفات إلى مشروعك على Android Studio.
- يمكنك تخطّي هذه الخطوة إذا كان لديك رمز برمجي أصلي أو إذا أردت استيراد مكتبة أصلية مُنشأة مسبقًا.
-
إعداد CMake لمحاولة
إنشاء مكتبة من رمز المصدر الأصلي يجب استخدام نص البرمجة هذا لإنشاء التطبيق
إذا كنت تستورد مكتبات مبنية مسبقًا أو مكتبات منصّة
وتربطها بتطبيقك.
- إذا كانت لديك مكتبة أصلية حالية تتضمّن
نص برمجي لإنشاء
CMakeLists.txt
أو تستخدمndk-build
وتتضمّن نص برمجي لإنشاءAndroid.mk
، يمكنك تخطّي هذه الخطوة.
- إذا كانت لديك مكتبة أصلية حالية تتضمّن
نص برمجي لإنشاء
-
إعداد
Gradle من خلال توفير مسار إلى ملف نص برمجي CMake أو
ndk-build
يستخدم Gradle نصّ إنشاء المشروع لاستيراد رمز المصدر إلى مشروعك على "استوديو Android" وتجميع مكتبتك الأصلية في التطبيق.
بعد ضبط إعدادات مشروعك، يمكنك الوصول إلى دوالّك الأصلية من код Java أو Kotlin باستخدام إطار عمل JNI. لإنشاء تطبيقك وتشغيله، انقر على تشغيل .
ملاحظة: إذا كان مشروعك الحالي يستخدم أداة
ndkCompile
المتوقّفة نهائيًا، يمكنك نقل البيانات لاستخدام CMake أو
ndk-build
.
تنزيل حِزم NDK وأدوات الإنشاء
لتجميع الرمز البرمجي الأصلي لتطبيقك وتصحيح أخطاءه، تحتاج إلى المكونات التالية:
- مجموعة تطوير البرامج الأصلية لنظام Android (NDK): مجموعة أدوات تتيح لك استخدام رمز C وC++ مع نظام Android. يوفّر NDK مكتبات المنصة التي تتيح لك إدارة الأنشطة المكتوبة بلغة برمجة برمجة تطبيقات Android الأصلية والوصول إلى مكوّنات الجهاز المادية، مثل أجهزة الاستشعار وinput اللمس.
-
CMake: أداة برمجة
خارجية تعمل مع Gradle لإنشاء مكتبتك
الأصلية. لا تحتاج إلى هذا المكوّن إذا كنت تخطّط لاستخدام
ndk-build
فقط. - LLDB: أداة debugging موجودة في "استوديو Android" لتصحيح أخطاء الرموز البرمجية الأصلية.
للحصول على معلومات عن تثبيت هذه المكوّنات، يُرجى الاطّلاع على مقالة تثبيت NDK وCMake وضبطهما.
إنشاء مشروع جديد متوافق مع C/C++
لإنشاء مشروع جديد يتيح استخدام الرموز البرمجية الأصلية، تكون العملية مشابهة لخطوات إنشاء أي مشروع آخر في IDE Android Studio، ولكن مع خطوة إضافية:
- في قسم اختيار مشروعك من المعالج، اختَر نوع المشروع C++ الأصلي.
- انقر على التالي.
- أكمِل جميع الحقول الأخرى في القسم التالي من المعالج.
- انقر على التالي.
-
في قسم تخصيص دعم C++ في المعالج، يمكنك تخصيص
مشروعك باستخدام حقل معيار C++.
- استخدِم القائمة المنسدلة لتحديد معيار C++ الذي تريد استخدامه. يؤدي اختيار مجموعة الأدوات تلقائي إلى استخدام الإعداد التلقائي لـ CMake.
- انقر على إنهاء.
بعد أن ينتهي "استوديو Android" من إنشاء مشروعك الجديد، افتح لوحة المشروع من الجانب الأيمن من بيئة تطوير البرامج المتكاملة (IDE) واختَر عرض Android من القائمة. كما هو موضّح في الشكل 1، يضيف "استوديو Android" مجموعة cpp:
ملاحظة: لا يعكس هذا العرض التسلسل الهرمي الفعلي للملفات على القرص، ولكنه يجمع الملفات المتشابهة لتبسيط التنقّل في مشروعك.
يمكنك العثور على جميع ملفّات المصدر
والرؤوس والنصوص البرمجية لإنشاء ملفّات CMake أو ndk-build
والمكتبات prebuilt
التي تشكّل جزءًا من مشروعك في مجموعة cpp. بالنسبة إلى المشاريع الجديدة، ينشئ "استوديو Android"native-lib.cpp
نموذجًا لملف مصدر C++ ويضعnative-lib.cpp
في الدليل src/main/cpp/
لوحدة تطبيقك. يوفّر رمز النموذج
هذا دالة C++ بسيطة، وهي stringFromJNI()
، والتي
تعرِض السلسلة "Hello from C++"
. تعرَّف على كيفية إضافة ملفّات مصدر إضافية
إلى مشروعك في القسم المخصّص لكيفية
إنشاء ملفات مصدر أصلية جديدة.
تمامًا مثل الطريقة التي تُوجّه بها ملفات build.gradle
أداة Gradle لإنشاء
تطبيقك، تتطلّب أداتا CMake وndk-build
ملفًا نصيًا للإنشاء لمعرفة كيفية إنشاء
مكتبتك الأصلية. بالنسبة إلى المشاريع الجديدة، ينشئ "استوديو Android" نصًا برمجيًا لإنشاء ملف CMakeCMakeLists.txt
، ويضع هذا النص في الدليل الجذر لمكوّن التطبيق.
لمعرفة المزيد من المعلومات عن محتوى نصّ الترميز هذا، يُرجى الاطّلاع على مقالة ضبط CMake.
إنشاء تطبيق النموذج وتشغيله
عند النقر على تشغيل ، ينشئ Android Studio تطبيقًا يعرض النص "مرحبًا من C++" على جهاز Android أو المحاكي. توضّح النظرة العامة التالية الأحداث التي تحدث لإنشاء نموذج التطبيق وتشغيله:
- تستدعي أداة Gradle نص إنشاء خارجي، وهو
CMakeLists.txt
. - يتّبع CMake الأوامر الواردة في نصّ الإنشاء لتجميع ملف مصدر
native-lib.cpp
لبرنامج C++ في مكتبة كائنات مشترَكة ويُطلق عليه اسمlibnative-lib.so
. بعد ذلك، يُجمِّع Gradle هذه العناصر في حزمة التطبيق. - أثناء التشغيل، تحمّل
MainActivity
في التطبيق مكتبةSystem.loadLibrary()
الأصلية باستخدامSystem.loadLibrary()
. أصبحت الوظيفة الأصلية للمكتبة،stringFromJNI()
، متاحة الآن للتطبيق. -
تستدعي
MainActivity.onCreate()
stringFromJNI()
، الذي يعرض"Hello from C++"
ويستخدمه لتعديلTextView
.
للتأكّد من أنّ Gradle يُجمِّع المكتبة الأصلية في التطبيق، استخدِم أداة تحليل حِزم APK:
- اختَر الإنشاء > إنشاء الحِزم / حِزم APK > إنشاء حِزم APK.
- اختَر الإنشاء > تحليل حِزمة APK.
- اختَر حزمة APK أو حزمة AAB من الدليل
app/build/outputs/
وانقر على حسنًا. - كما هو موضّح في الشكل 2، يمكنك الاطّلاع على
libnative-lib.so
في نافذة "أداة تحليل حِزم APK" ضمنlib/<ABI>/
.
ملاحظة: إذا كنت تريد تجربة تطبيقات Android أخرى تستخدم رمزًا أصليًا، انقر على ملف > جديد > استيراد نموذج و اختَر نموذج مشروع من قائمة Ndk.
إنشاء ملفات مصدر C/C++ جديدة
لإضافة ملفات مصدر C/C++ جديدة إلى مشروع حالي، اتّبِع الخطوات التالية:
- إذا لم يكن لديك دليل
cpp/
في مجموعة المصادر الأساسية لتطبيقك، أنشئ دليلاً على النحو التالي: - افتح لوحة المشروع في الجانب الأيمن من IDE و اختَر عرض المشروع من القائمة.
- انتقِل إلى your-module > src.
- انقر بزر الماوس الأيمن على الدليل main واختَر New (جديد) > Directory (دليل).
- أدخِل
cpp
كاسم للدليل وانقر على حسنًا. - انقر بزر الماوس الأيمن على الدليل
cpp/
واختَر جديد > ملف مصدر C/C++. - أدخِل اسمًا لملف المصدر، مثل
native-lib
. - من قائمة النوع، اختَر امتداد الملف
لملفات المصدر، مثل
.cpp
.- انقر على تعديل أنواع الملفات
لإضافة أنواع ملفات أخرى إلى القائمة، مثل
.cxx
أو.hxx
. في مربّع الحوار إضافات الملفات الجديدة الذي ينبثق، اختَر إضافة ملف أخرى من قائمتَي إضافة المصدر وإضافة العنوان وانقر على حسنًا.
- انقر على تعديل أنواع الملفات
لإضافة أنواع ملفات أخرى إلى القائمة، مثل
- لإنشاء ملف رأس، ضَع علامة في مربّع الاختيار إنشاء ملف رأس مرتبط.
- انقر على موافق.
بعد إضافة ملفات C/C++ جديدة إلى مشروعك، سيظل عليك ضبط CMake لتضمين الملفات في مكتبتك الأصلية.
مصادر إضافية
لمزيد من المعلومات عن إتاحة رمز C/C++ في تطبيقك، يمكنك الاطّلاع على المحاولة التالية مرجع.
الدروس التطبيقية حول الترميز
- إنشاء Hello-CMake باستخدام "استوديو Android" يوضّح لك هذا الدرس التطبيقي حول الترميز كيفية استخدام نموذج CMake في "استوديو Android" لبدء تطوير مشروع Android NDK.