مساعدة نيون

وتدعم واجهة برمجة التطبيقات NDK شريحة SIMD المتقدمة من ARM، والمعروفة باسم النيون، وهي تقنية اختيارية التعليمات الخاصة بـ ARMv7 وARMv8. يوفر النيون اللون العددي/المتجه التعليمات والسجلات (التي تتم مشاركتها مع FPU) والتي يمكن مقارنتها بـ MMX/SSE/3DNow! في عالم x86.

جميع أجهزة Android المستندة إلى ARMv8 ("arm64") تتوافق مع Neon. كل التطبيقات المستندة إلى ARMv7 تقريبًا تتوافق أجهزة Android ("32 بت") مع Neon، بما في ذلك جميع الأجهزة التي يتم شحنها مع المستوى 21 من واجهة برمجة التطبيقات أو المستويات الأحدث يمكّن NDK نيون بشكل افتراضي لكليهما.

إذا كنت تستهدف أجهزة قديمة جدًا، يمكنك استبعاد الأجهزة غير المتوافقة على Google Play Console يمكنك أيضًا استخدام وحدة التحكم لتطبيقك لمعرفة عدد الأجهزة التي قد يؤثر ذلك عليها.

بدلاً من ذلك، يمكن استخدام رمز 32 بت في وقت التشغيل للحصول على أقصى قدر من التوافق. للتأكد من إمكانية تشغيل رمز Neon على الجهاز المستهدف. يمكن للتطبيق إجراء هذا الفحص باستخدام أي من الخيارات المذكورة في ميزات وحدة المعالجة المركزية (CPU):

يمكنك استخدام أساسيات النيون في الرموز C وC++ للاستفادة من إضافة SIMD المتقدمة. تشير رسالة الأشكال البيانية دليل مبرمِجين النيون لأسلحة Armv8-A يوفر المزيد من المعلومات حول أساسيات النيون وبرمجة النيون بشكل عام.

إنشاء

إيقاف Neon في جميع أنحاء العالم

لعبة ndk-build

لا يدعم ndk-build إيقاف Neon على مستوى العالم. لإيقاف Neon بالكامل ndk-build، يمكنك تطبيق الخطوات لكل وحدة على كل وحدة في التطبيق.

إنشاء فيديوهات Shorts

اجتياز -DANDROID_ARM_NEON=ON عند استدعاء CMake. في حال إنشاء حساب باستخدام Android Studio/Gradle، اضبط الخيار التالي في create.gradle:

android {
    defaultConfig {
        externalNativeBuild {
            cmake {
                arguments "-DANDROID_ARM_NEON=OFF"
            }
        }
    }
}

إيقاف Neon لكل وحدة

لعبة ndk-build

لإنشاء جميع الملفات المصدر في وحدة ndk-build بدون Neon، أضف وفقًا لتعريف الوحدة في Android.mk:

LOCAL_ARM_NEON := false

إنشاء فيديوهات Shorts

لإنشاء جميع الملفات المصدر في هدف CMake بدون Neon، أضف التالي إلى CMakeLists.txt:

if(ANDROID_ABI STREQUAL armeabi-v7a)
    set_target_properties(${TARGET} PROPERTIES COMPILE_FLAGS -mfpu=vfpv3-d16)
endif()

حيث يتم استبدال ${TARGET} باسم مكتبتك.

التوافق عبر الأنظمة الأساسية لمعيار x86

تتيح منصة NDK تجميع بيانات شريحة SIMD الحالية من ARM (نيون) من خلال عدّة منصات الدوال الأساسية إلى رمز x86 SSE، من خلال الاستعانة بطرف ثالث NEON_2_SSE.h. لمزيد من المعلومات حول هذا الموضوع، يُرجى مراجعة من ARM NEON إلى Intel SSE - حل النقل التلقائي والنصائح والحيل.

نموذج التعليمات البرمجية

نموذج hello-neon مثال على كيفية استخدام مكتبة cpufeatures وعوامل نيون في نفس الوقت. تنفذ هذه العينة مقياس أداء صغيرًا لتكرار فلتر FIR بإصدار C وإصدار مُحسَّن بالنيون للأجهزة التي تتوافق مع Neon.