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