ماهو NDK ؟ وكيفية التعامل معه بأستخدام JNI-(C/C++) Native .

الNDK يسمح للمبرمج بكتابة كود ++C/C داخل كود Java .

1337r00tمنذ 5 سنوات

* السلام عليكم ورحمة الله وبركاته *

-------------------------------

الحمد لله على جميع نِعمه علينا ما علمنا منها وما لم نعلم حمداً والصلاة والسلام على نبينا محمد اشرف الخلق والمرسلين, اما بعد :-

----------------------------

# ماهو NDK ( Native Development Kit) :-

 - هي ادوات لتطوير كود Native (C/C++) داخل كود جافا

----------------------------------------------------------------------------------------------------------------------------------

# ماهو JNI ( Java Native Interface) :-

Interface : هو المسؤول عن الترجمة بين الNative Code والJava Code (كمثال عام :انت تتحث العربية وشخص آخر الفرنسية,  الأنتر فيس هو المترجم بينكم ويفهم جميعكم ) أتمنى وصلت النقطة .

----------------------------------------------------------------------------------------------------------------------------------

# لماذا نحتاج JNI/NDK :-

 لأن هناك حالات حيث جافا وحدها لا تلبي احتياجات التطبيق الخاص بك. على سبيل المثال : لاتدعم جافا مميزات platform-dependent بسبب ان جافا هي لغة برمجة platform-independent .

----------------------------------------------------------------------------------------------------------------------------------

# المستلزمات :-

- قم بفتح SDK manager.

- حمل اخر اصدار من (NDK/CMake/LLDB)

معلومة عالطاير : الLLDB هو Debugger .

-----------------------------------------------------------------------------------------------

الآن بنتعمق في JNI لأنه هو مثل أصبع الوصل بين المكيف والرديتر XD

-----------------

شرحنا ايش هو JNI راح ندرس كيف نكتب فيه بناخذ كل موضوع ونعرف مرادفات بين Java code و Native Code

-----------------------

# أنواع المدخلات :-

----------------------------------------------------------------------------------------------------------------------------------

# أنواع الكائنات البرمجية objects اللذي يتعامل معها JNI :-

----------------------------------------------------------------------------------------------------------------------------------

# دوال JNI* :-

  • JNIExport : هي Native Type Class Macro كمثال يستدعي كلاس يرجع له jint
    extern "C"
    JNIEXPORT jint

    .

  • JNICall : هو تسمية الكلاس :- // يجب كتابة Java اولا ثم اسم المشروع com_3alam_pro ثم اسم الكلاس جافا اللي تعمل عليه ثم اسم الفنشكن اللي تبي تسميه وتستدعيه

    extern "C"
    JNIEXPORT jint JNICALL Java_UR_PACKAGE_NAME_CLASSNAME_FUNCNAME

    .

  • JNIEnv : هو المسؤول عن الوصول لكل الدوال الموجودة والربط بينها والتعامل معها .

    extern "C"
    JNIEXPORT jint JNICALL Java_UR_PACKAGE_NAME_CLASSNAME_FUNCNAME(
         JNIEnv* env,

    .

  • jobject : هو لتحديد نوع الأبجيكت .

----------------------------------------------------------------------------------------------------------------------------------

وهنا ياشباب شرح فيديو (تطبيق عملي) :-

Youtube - NDK

-----

ومن لم يفهم خطواته يرسل تحت طلب وانا شخصيا راح اسجل فيديو شرح وأضعه بالمقال بمثال بسيط مثل حساب الرياضيات او سؤال عن اسم وطباعته الخ..

--------------------------------------------------

تحياتي للجميع

0
إعجاب
5025
مشاهدات
0
مشاركة
0
متابع

التعليقات (0)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !