أضِف رمز C وC++ إلى مشروع Android عن طريق وضع الرمز في دليل
cpp
في وحدة مشروعك. عند إنشاء مشروعك، يتم تجميع هذا الرمز في مكتبة أصلية يمكن لنظام Gradle أن يجمع التطبيق مع تطبيقك. ويمكن عندئذٍ لرمز Java أو Kotlin استدعاء دوال في مكتبتك الأصلية من خلال واجهة Java الأصلية (JNI). لمزيد من المعلومات عن استخدام إطار عمل JNI
، يُرجى الاطّلاع على نصائح لاستخدام JNI
في Android.
يتوافق "استوديو Android" مع أداة CMake، وهي مفيدة للمشاريع على عدّة منصات.
يتوافق "استوديو Android" أيضًا مع أداة ndk-build
التي يمكن أن
تكون أسرع من تكنولوجيا CMake، لكنّها تتوافق مع Android فقط. لا يمكن حاليًا استخدام كلّ من CMake و
ndk-build
في الوحدة نفسها.
لاستيراد مكتبة ndk-build
حالية إلى مشروعك في IDE "استوديو Android"، تعرَّف على كيفية
ربط 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، ولكن مع خطوة إضافية:
- في قسم اختيار مشروعك من المعالج، اختَر نوع المشروع C++ الأصلي.
- انقر على التالي.
- أكمِل جميع الحقول الأخرى في القسم التالي من المعالج.
- انقر على التالي.
-
في قسم تخصيص دعم C++ في المعالج، يمكنك تخصيص
مشروعك باستخدام حقل معيار C++.
- استخدِم القائمة المنسدلة لتحديد معيار C++ الذي تريد استخدامه. يؤدي اختيار مجموعة الأدوات تلقائي إلى استخدام الإعداد التلقائي لـ CMake.
- انقر على إنهاء.
بعد أن ينتهي "استوديو Android" من إنشاء مشروعك الجديد، افتح لوحة المشروع من الجانب الأيمن من بيئة تطوير البرامج المتكاملة (IDE) واختَر عرض Android من القائمة. كما هو موضّح في الشكل 1، يضيف "استوديو Android" مجموعة cpp:
ملاحظة: لا يعكس هذا العرض التسلسل الهرمي الفعلي للملفات على القرص، ولكنه يجمع الملفات المتشابهة لتبسيط التنقّل في مشروعك.
يمكنك العثور في مجموعة cpp على جميع ملفات المصدر الأصلية والعناوين وإنشاء نصوص برمجية لـ CMake أو ndk-build
والمكتبات المنشأة مسبقًا التي تشكّل جزءًا من مشروعك. بالنسبة إلى المشاريع الجديدة، ينشئ "استوديو 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" تطبيقًا يعرض العبارة "مرحبًا من 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.