بدء استخدام NDK

حزمة تطوير البرامج الأصلية (NDK) هي مجموعة من الأدوات التي تتيح لك استخدام رمز C وC++ على Android، وتوفّر مكتبات الأنظمة الأساسية التي يمكنك استخدامها لإدارة الأنشطة الأصلية والوصول إلى مكوّنات الجهاز، مثل أدوات الاستشعار والإدخال باللمس. قد لا يكون NDK مناسبًا لمعظم مبرمجي Android المبتدئين الذين يحتاجون إلى استخدام رمز Java وواجهات برمجة التطبيقات لإطار العمل لتطوير تطبيقاتهم. ومع ذلك، قد يكون NDK مفيدًا في الحالات التي تحتاج فيها إلى تنفيذ إجراء أو أكثر من الإجراءات التالية:

  • يمكنك الضغط على الأداء الإضافي للجهاز لتسريع وقت الاستجابة أو تشغيل تطبيقات حاسوبية مكثّفة، مثل الألعاب أو محاكاة الفيزياء.
  • أعِد استخدام مكتبات C أو C++ الخاصة بك أو الخاصة بالمطوّرين الآخرين.

باستخدام Android Studio 2.2 والإصدارات الأحدث، يمكنك استخدام NDK لتجميع رمز C وC++ في مكتبة أصلية وتجميعه في حزمة APK باستخدام Gradle، وهو نظام الإنشاء المتكامل لبيئة التطوير المتكاملة. ويمكن لرمز Java بعد ذلك استدعاء الدوالّ في مكتبتك الأصلية من خلال إطار عمل واجهة Java الأصلية (JNI). لمعرفة مزيد من المعلومات حول Gradle ونظام إصدار Android، يمكنك الاطّلاع على ضبط تصميمك.

إنّ CMake أداة الإنشاء التلقائية في "استوديو Android" لتجميع المكتبات الأصلية. يتوافق "استوديو Android" أيضًا مع ndk-build بسبب العدد الكبير من المشاريع الحالية التي تستخدم مجموعة أدوات الإصدار. ومع ذلك، إذا كنت بصدد إنشاء مكتبة مدمجة مع المحتوى جديدة، يجب استخدام CMake.

يمنحك هذا الدليل المعلومات التي تحتاجها لبدء استخدام NDK في "استوديو Android". إذا لم يكن لديك أحدث إصدار من "استوديو Android"، يمكنك تنزيله وتثبيته الآن.

تنبيه إلى مستخدمي إصدار Gradle التجريبي: ننصحك بالانتقال إلى الإصدار 2.2.0 أو إصدار أحدث من المكوِّن الإضافي واستخدام CMake أو ndk-build لإنشاء مكتبات أصلية في حال كان أيٌّ ممّا يلي ينطبق عليك: يستخدم مشروعك الأصلي حاليًا CMake أو ndk-build، أو تفضّل استخدام إصدار ثابت من نظام إصدار Gradle، أو تريد إتاحة استخدام أدوات الإضافات، مثل ذاكرة التخزين المؤقت المدمجة الخاصة بك. بخلاف ذلك، يمكنك مواصلة استخدام الإصدار التجريبي من Gradle والمكوِّن الإضافي Android.

تنزيل NDK والأدوات

لتجميع الرمز الأصلي لتطبيقك وتصحيح أخطائه، ستحتاج إلى المكوّنات التالية:

  • مجموعة أدوات تطوير Android الأصلية (NDK): هي مجموعة من الأدوات التي تتيح لك استخدام لغة البرمجة C وC++ مع نظام Android.
  • CMake: أداة إنشاء خارجية تعمل إلى جانب Gradle لإنشاء مكتبة أصلية. لن تحتاج إلى هذا المكوِّن إذا كنت تخطط فقط لاستخدام ndk-build.
  • LLDB: برنامج تصحيح الأخطاء الذي يستخدمه "استوديو Android" لتصحيح الأخطاء في الرموز البرمجية الأصلية.

للحصول على معلومات عن تثبيت هذه المكوّنات، يُرجى الاطّلاع على تثبيت NDK وCMaker وضبطهما.

إنشاء مشروع أصلي أو استيراده

بعد إعداد "استوديو Android"، يمكنك ببساطة إنشاء مشروع جديد باستخدام دعم C/C++. أما إذا أردت إضافة رموز برمجية أصلية أو استيرادها إلى مشروع حالي على "استوديو Android"، يجب اتّباع العملية الأساسية التالية:

  1. أنشئ ملفات مصدر أصلية جديدة وأضِفها إلى مشروع "استوديو Android".
    • يمكنك تخطّي هذه الخطوة إذا كان لديك رمز برمجي أصلي أو تريد استيراد مكتبة مدمجة مسبقًا.
  2. أنشئ نص برمجي لإنشاء CMake لإطلاع CMake على كيفية إنشاء مصادر الإعلانات المدمجة مع المحتوى في مكتبة. عليك أيضًا طلب هذا النص البرمجي للإصدار إذا كنت تستورد البيانات وتربطها بمكتبات تم إنشاؤها مسبقًا أو مكتبات الأنظمة الأساسية.
    • يمكنك تخطّي هذه الخطوة إذا كانت مكتبتك الحالية المدمجة مع المحتوى تحتوي حاليًا على نص برمجي للإصدار CMakeLists.txt أو تستخدم ndk-build وتتضمن نصًا برمجيًا لإصدار Android.mk.
  3. اربط Gradle بمكتبتك الأصلية من خلال توفير مسار لملف النص البرمجي CMake أو ndk-build. يستخدم Gradle النص البرمجي للإصدار لاستيراد رمز المصدر إلى مشروع استوديو Android وتجميع مكتبتك الأصلية (ملف SO) في حزمة APK.

    ملاحظة: إذا كان مشروعك الحالي يستخدم أداة ndkCompile التي تم إيقافها نهائيًا، عليك فتح ملف build.properties وإزالة سطر الرمز التالي قبل إعداد Gradle لاستخدام CMake أو ndk-build:

    // Remove this line
    android.useDeprecatedNdk = true
    
  4. أنشئ تطبيقك وشغِّله من خلال النقر على رمز التشغيل تشغيل ثم تشغيل التطبيق من القائمة الرئيسية. يضيف Gradle عملية CMake أو ndk-build كتبعية لتجميع وإنشاء وتجميع مكتبتك الأصلية باستخدام حزمة APK.

بعد تشغيل تطبيقك على جهاز فعلي أو محاكي، يمكنك استخدام Android Studio من أجل تصحيح أخطاء تطبيقك. وبخلاف ذلك، يمكنك الاطّلاع على صفحة المفاهيم للحصول على مزيد من المعلومات حول اتفاقية NDK ومكوّناتها.