"مجموعة تطوير التطبيقات الأصلية" (NDK) هي مجموعة من الأدوات التي تتيح لك استخدام الرمز C و+C مع نظام التشغيل Android، وتوفّر مكتبات الأنظمة الأساسية التي يمكنك استخدامها لإدارة الأنشطة المحلية والوصول إلى مكوّنات الأجهزة الفعلية، مثل أجهزة الاستشعار والإدخال باللمس. وقد تكون اتفاقية NDK غير مناسبة لمعظم مطوّري برامج Android المبتدئين الذين يحتاجون إلى استخدام رمز Java وواجهات برمجة تطبيقات إطار العمل فقط لتطوير تطبيقاتهم. ومع ذلك، يمكن أن تكون اتفاقية عدم الإفشاء مفيدة في الحالات التي تحتاج فيها إلى اتخاذ إجراء واحد أو أكثر مما يلي:
- اضغط على أداء إضافي من الجهاز لتحقيق وقت استجابة منخفض أو لتشغيل تطبيقات مكثّفة حاسوبيًا، مثل الألعاب أو عمليات محاكاة الفيزياء.
- إعادة استخدام مكتبات C أو C++ التابعة لك أو لمطوّري البرامج الآخرين.
باستخدام Android Studio 2.2 والإصدارات الأحدث، يمكنك استخدام رمز NDK لتجميع الرمز C و+C في مكتبة أصلية ودمجه في حزمة APK باستخدام Gradle، وهو نظام الإصدار المتكامل من IDE. ويمكن لرمز Java بعد ذلك طلب الدوال في المكتبة الأصلية من خلال إطار عمل Java Nativeface (JNI). لمعرفة المزيد من المعلومات حول نظام Gradle ونظام التشغيل Android الخاص بـ Gradle، يمكنك الاطّلاع على ضبط تصميم موقعك الإلكتروني.
أداة الإنشاء التلقائية في "استوديو Android" لتجميع المكتبات الأصلية هي Cmake. يتوافق "استوديو Android" أيضًا مع ndk-build بسبب توفّر عدد كبير من المشاريع الحالية التي تستخدم مجموعة أدوات الإصدار. في حال كنت تنشئ مكتبة أصلية جديدة، عليك استخدام CMake.
يقدّم لك هذا الدليل المعلومات اللازمة للاستعانة بمنصة NDK في "استوديو Android". إذا لم يكن لديك أحدث إصدار من "استوديو Android"، نزِّله وثبِّته الآن.
تنبيه مستخدمي Gradle التجريبي: يمكنك نقل البيانات إلى الإصدار 2.2.0 أو الإصدارات الأحدث من المكوّنات الإضافية، واستخدام CMake أو ndk-build لإنشاء مكتباتك الأصلية في حال كان أي من العناصر التالية ينطبق عليك: يستخدم مشروعك الأصلي CC أو ndk-build ولكن بإمكانك بدلاً من ذلك استخدام إصدار ثابت من نظام إنشاء Gradle أو استخدام أدوات ذاكرة التخزين المؤقت، مثل أدوات ذاكرة التخزين المؤقت، مثل بخلاف ذلك، يمكنك مواصلة استخدام الإصدار التجريبي من Gradle والمكوّن الإضافي لنظام Android.
تنزيل اتفاقية عدم الإفشاء والأدوات
لتجميع الرمز الأصلي لتطبيقك وتصحيح أخطاءه، ستحتاج إلى المكوّنات التالية:
- حزمة التطوير الأصلية لنظام Android (NDK): هي مجموعة من الأدوات التي تتيح لك استخدام الرمز C وC++ مع نظام Android.
- CMake: أداة إنشاء خارجية تعمل مع Gradle لإنشاء مكتبتك الأصلية. ولا تحتاج إلى هذا المكوّن إذا كنت تخطط لاستخدام ndk-build فقط.
- LLDB: يستخدم برنامج تصحيح الأخطاء Android Studio لتصحيح أخطاء الرموز البرمجية الأصلية.
للحصول على معلومات عن تثبيت هذه المكوّنات، اطّلِع على تثبيت وضبط NDK وCmake.
إنشاء مشروع أصلي أو استيراده
بعد إعداد "استوديو Android"، يمكنك إنشاء مشروع جديد من خلال دعم C/C++. إذا كنت تريد إضافة رمز أصلي أو استيراده إلى مشروع حالي في "استوديو Android"، عليك اتّباع الخطوات الأساسية التالية:
-
أنشئ ملفات مصدر أصلية جديدة وأضِفها إلى مشروع Android Studio.
- يمكنك تخطي هذه الخطوة إذا كان لديك رمز مدمج مع المحتوى أو كنت تريد استيراد مكتبة مدمجة مسبقًا.
-
أنشِئ نصًا برمجيًا لإنشاء CC لسرد كيفية إنشاء المصادر الأصلية في مكتبة. وتتطلّب أيضًا النص البرمجي للإصدار هذا في حال استيراد
المكتبات المثبّتة مسبقًا أو الأنظمة الأساسية والربط بها.
- يمكنك تخطّي هذه الخطوة إذا كانت مكتبتك الأصلية الحالية تحتوي على
نص برمجي للإصدار
CMakeLists.txt
، أو تستخدم الإصدار ndk-build وتتضمّن نصًا برمجيًا للإصدارAndroid.mk
.
- يمكنك تخطّي هذه الخطوة إذا كانت مكتبتك الأصلية الحالية تحتوي على
نص برمجي للإصدار
-
اربط Gradle بمكتبتك الأصلية من خلال توفير مسار إلى النص البرمجي CMake أو ملف ndk-build. يستخدم Gradle النص البرمجي للإصدار لاستيراد رمز المصدر إلى مشروع Android Studio ودمج مكتبتك الأصلية (ملف SO) في ملف APK.
ملاحظة: إذا كان مشروعك الحالي يستخدم أداة
ndkCompile
التي تم إيقافها نهائيًا، عليك فتح ملفbuild.properties
وإزالة سطر الرمز التالي قبل ضبط Gradle لاستخدام CMake أو أداة ndk-build:// Remove this line android.useDeprecatedNdk = true
-
إنشاء التطبيق وتشغيله من خلال النقر على
تشغيل
يضيف Gradle عملية إنشاء العلامة التجارية أو تصميم حزمة تطوير برامج (SDK) كاعتمادية إلى تجميع مكتبتك الأصلية وإنشاؤها ووضعها في حزمة APK باستخدام حزمة APK.
بعد تشغيل تطبيقك على جهاز أو جهاز محاكاة، يمكنك استخدام "استوديو Android" لتصحيح أخطاء تطبيقك. ولمعرفة المزيد من المعلومات حول NDK ومكوّناته، يمكنك الاطّلاع على صفحة المفاهيم.