NDK چیست؟

NDK اندروید چیست ؟
دلایل استفاده از NDK اندروید چیه؟
مهم ترین دلایل استفاده از NDK ؟
- از جمله دلایلی که ما را مجاب میکند تا از NDK استفاده کنیم این هست که کتابخانه های بومی معادل را در APK قرار دهیم .
- اینکه در بیشتر مواقع بدون کامپایل دوباره اجرا میشود.
- ما میتوانیم به کمک ان دی کا به اجزای فیزیکی مثل حسگر ها دسترسی پیدا کنیم.
- اگر از NDK استفاده کنیم این قابلیت را پیدا میکنیم که از کد های C و C++ که کدنویسی کردیم دوباره استفاده کنیم .
- دلیل دیگری که از مزایای استفاده از NKD اندروید هست ، اینکه ما موقعی که از ان دی کا استفاده میکنیم کد های اپلیکیشن ما دیگر قابل مهندسی معکوس یا به اصطلاح decompile نمیشود .که یک نقطه ی قوت برای آن محسوب میشود و به خاطر همین امر هست که در مواردی که ما میخواهیم یک اپلیکیشن بنویسم که از نظر امنیت بسیار بالا باشد از NDK استفاده میکنیم که مخفف Native Development kit هست .
NDK چگونه کار میکند ؟

نحوی کار NDK به چه صورت میباشد ؟
در بخش بالا ما فهمیدیم که NDK چیست ؟ و دلایل استفاده از ان دی کا چیه ؟ حالا باید بدانیم که نحوی کار ان دی کا به چه صورت میباشد . اولین کاری که برنامه نویس باید انجام دهید این هست که یک کد به زبان C و یا C++ بنویسد بعد از آن ما برای اینکه پلتفرمی که از آن استفاده میکنیم مشخص شود به یک چیزی به نام makefile نیاز داریم .و همچنین برای اینکه کتابخانه های مشترک ایجاد کنیم به ndk-build نیاز داریم. بعد از این مراحل برنامه جاوای ما کتابخانه های بومی رو فراخوانی میکند و این فراخوانی از طریق JNU که به اصطلاح به آن رابط بومی جاوا میگویند انجام میشود .در واقع رابط بومی جاوا یک مسیر درست میکند تا به کمک آن ByteCode آن کد های که به زبان برنامه نویسی کاتلین و یا جاوا نوشته شده است را برای تعامل با کد های بومی کامپایل کند .
چه زمانی از ان دی کا استفاده کنیم ؟
ببینید عزیزان ما در قسمت های بالا به یک درک کلی از NDK رسیدیم و فهمیدم که چه چیزی هست . و اینکه ما چگونه باید با NDK کار کنیم را هم یادگرفتیم. سوال مهم تر این هست که چه زمانی باید از ان دی کا استفاده کنیم . ببینید NDK برای خیلی از برنامه های که توسط ما نوشته میشود سود چندانی ندارد . شما باید قبل اینکه از NDK استفاده کنید هم مزایا و هم معایبی که برای شما دارد را بررسی کنید .
یعنی این یک چیز حتمی نیست که ما هر وقتی از NDK استفاده کنیم باید عملکرد ما افزایش پیدا کند. و اینکه ما در زمان های که از NDK استفاده میکنیم پیچیدگی کدهایمان نیز افزایش میبابد .اگر به صورت خلاصه بهتون بگم فقط این را بدانید که ما فقط و فقط باید زمانی از Native Code استفاده کنیم که برای ما خیلی ضروری باشد . فقط صرفا برای این نباشد که دوست داریم با سی و یا سی پلاس پلاس کدنویسی کنیم.
در هنگام بررسی کردن اینکه آیا از API استفاده کنیم یا نه باید بررسی کنید که API های اندروید آن عملکردی که خواست ما هست را برای ما مهیا میکند و یا خیر. با این این را نیز بگویم که NDK یکی ازبهترین گزینه ها برای این هست که ما کد های بزرگی که به زبان برنامه نویسی C و C++ نوشته شده است را استفاده مجدد کنیم. همچنین نکته ی دیگر که نیاز هست بدانید اینکه NDK یک سیستم ساخت برای ما ارائه میدهد که به ما یک قابلیت میدهد .
این قابلیت این هست که ما بدون اینکه نیاز داشته باشیم جزئیات زنجیره ابزار ها ، CPU و ABI را مدیریت کنیم. به طور کاملا مفید با منابع خودمون کار کنیم . آن سیستم ساختی که توسط ان دی کا ساخته شده هست منابعی را که ما میگویم را کامپایل میکند و همچنین اون کتابخانه های مشترک را به صورت مستقیم به پروژه ما وصل میکند .
ممنون از این مقاله کاربردی
خواهش میکنم لطف دارین