النص البرمجي لإصدار ndk

يُنشئ النص البرمجي ndk-build مشاريع تستخدم نظام الإنشاء الخاص بـ NDK. وهناك وثائق أكثر تحديدًا لإعدادات Android.mk و Application.mk التي يستخدمها ndk-build.

أصول داخلية

إنّ تنفيذ النص البرمجي ndk-build يعادل تنفيذ الأمر التالي:

$GNUMAKE -f <ndk>/build/core/build-local.mk
<parameters>

تشير السمة $GNUMAKE إلى GNU Make 3.81 أو إصدار أحدث، ويشير <ndk> إلى دليل تثبيت NDK. يمكنك استخدام هذه المعلومات لاستدعاء بنية ndk من النصوص البرمجية الأخرى في واجهة النظام أو حتى إنشاء ملفات خاصة بك.

الاستدعاء من سطر الأوامر

يتوفّر النص البرمجي ndk-build في دليل تثبيت NDK من المستوى الأعلى. لتشغيلها من سطر الأوامر، يمكنك استدعاءها أثناء أو ضمن دليل مشروع التطبيق. على سبيل المثال:

$ cd <project>
$ <ndk>/ndk-build

في هذا المثال، يشير <project> إلى الدليل الجذري لمشروعك، ويمثل <ndk> الدليل الذي ثبَّت فيه اتفاقية عدم الإفشاء.

الخيارات

يتم تمرير جميع المعلّمات المراد إنشاؤها باستخدام الأمر ndk مباشرةً إلى الأمر الأساسي في GNU make الذي يشغِّل النصوص البرمجية لإصدار NDK. يمكنك دمج ndk-build والخيارات في النموذج ndk-build <option>. على سبيل المثال:

$ ndk-build clean

تتوفر الخيارات التالية:

clean
إزالة أي برامج ثنائية تم إنشاؤها سابقًا

ملاحظة: على نظام التشغيل Mac OS X، قد يؤدي تشغيل ndk-build clean مع عدد كبير من عمليات التنفيذ المتوازية إلى حدوث خطأ في الإصدار يتضمّن الرسالة التالية:

rm: fts_read: No such file or directory

لتجنّب هذه المشكلة، ننصحك بعدم استخدام معدِّل -jN أو اختيار قيمة أصغر لـ N، مثل 2.

V=1
يمكنك إطلاق أوامر الإصدار وعرضها.
-B
فرض إعادة الإنشاء بالكامل:
-B V=1
يمكنك فرض إعادة بناء كاملة وعرض أوامر الإصدار.
NDK_LOG=1
عرض رسائل سجلّ NDK الداخلية (تُستخدم لتصحيح أخطاء NDK نفسها)
NDK_DEBUG=1
فرض الإصدار الذي يمكن تصحيح الأخطاء فيه (راجِع الجدول 1).
NDK_DEBUG=0
فرض إنشاء إصدار (راجِع الجدول 1)
NDK_HOST_32BIT=1
استخدِم سلسلة الأدوات دائمًا في وضع 32 بت.
NDK_APPLICATION_MK=<file>
استخدِم ملف Application.mk محدّدًا تتم الإشارة إليه باستخدام المتغيّر NDK_APPLICATION_MK.
-C <project>
يُرجى إنشاء الرمز الأصلي لمسار المشروع المتوفّر في <project>. تكون هذه السمة مفيدة إذا كنت لا تريد cd تضمينها في الوحدة الطرفية.

الإصدارات القابلة للتصحيح مقابل إصدارات الإصدارات

يمكنك استخدام الخيار NDK_DEBUG، وفي بعض الحالات، AndroidManifest.xml لتحديد تصحيح الأخطاء أو إنشاء إصدار، والسلوك المرتبط بتحسين التحسين، وتضمين الرموز. ويعرض الجدول 1 نتائج كل مجموعة محتملة من الإعدادات.

الجدول 1: نتائج تركيبات NDK_DEBUG (سطر الأوامر) وandroid:debuggable (بيان).

إعدادات البيانNDK_DEBUG=0 NDK_DEBUG=1لم يتم تحديد NDK_DEBUG
android:debuggable="true" تصحيح الأخطاء والرموز والرموز محسَّنة*1 تصحيح الأخطاء والرموز والرموز غير محسّنة*2 (مثل NDK_DEBUG=1)
android:debuggable="false"الإصدار، الرموز، محسَّن الإصدار؛ الرموز؛ غير محسَّنالإصدار، وما مِن رموز، محسَّن*3
*1: مفيد لعملية تحديد المواصفات.
*2: الإعداد التلقائي هو تشغيل ndk-gdb.
*3: الوضع التلقائي

ملاحظة: يتطابق مع "NDK_DEBUG=0`" مع `APP_OptIM=release`، ويتم تجميعه مع `-O2`. أما "NDK_DEBUG=1`"، فتكون مطابقة لـ "APP_OptIM=debug" في "Application.mk"، ويتم تجميعها مع `-O0`. للتعرّف على المزيد من المعلومات حول "App_OptIM`"، يُرجى الاطّلاع على .

وتكون بنية سطر الأوامر على سبيل المثال:

$ ndk-build NDK_DEBUG=1

المتطلبات

عليك استخدام GNU Make 4 لاستخدام الإصدار NDK أو NDK بشكل عام. تتضمن اتفاقية NDK النسخة الخاصة بها من GNU Make وستستخدم ذلك ما لم يتم ضبط متغيّر البيئة $GNUMAKE ليشير إلى إصدار غير ملائم.

قواعد بيانات التجميع في JSON

في الإصدار 18 من منصّة NDK والإصدارات الأحدث، يمكن أن ينشئ ndk-build قاعدة بيانات مجمّعة بتنسيق JSON.

يمكنك استخدام ndk-build compile_commands.json لإنشاء قاعدة البيانات بدون إنشاء رمز، أو ndk-build GEN_COMPILE_COMMANDS_DB=true إذا أردت إنشاء قاعدة البيانات وإنشائها كآثار جانبية.