ماهو NDK ؟ وكيفية التعامل معه بأستخدام JNI-(C/C++) Native .
الNDK يسمح للمبرمج بكتابة كود ++C/C داخل كود Java .
* السلام عليكم ورحمة الله وبركاته *
-------------------------------
الحمد لله على جميع نِعمه علينا ما علمنا منها وما لم نعلم حمداً والصلاة والسلام على نبينا محمد اشرف الخلق والمرسلين, اما بعد :-
----------------------------
# ماهو 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 : هو لتحديد نوع الأبجيكت .
----------------------------------------------------------------------------------------------------------------------------------
وهنا ياشباب شرح فيديو (تطبيق عملي) :-
-----
ومن لم يفهم خطواته يرسل تحت طلب وانا شخصيا راح اسجل فيديو شرح وأضعه بالمقال بمثال بسيط مثل حساب الرياضيات او سؤال عن اسم وطباعته الخ..
--------------------------------------------------
تحياتي للجميع
التعليقات (0)
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !