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