NDK در برنامه نویسی اندروید چیست ؟
سلام دوستان امیدوارم سلامت باشید امروز می خواهیم NDK را مورد بررسی قرار دهیم شاید بپرسید NDK یا Native Development Kit چیست ؟ در ادامه علت استفاده از آن و همینطور ویژگی های آن را بیان می کنیم در ادامه با ما همراه باشید.NDK در برنامه نویسی اندروید چیست ؟ و چرا باید از آن استفاده کرد ؟
دوستان همانطور که در بالا اشاره کردیم می خواهیم NDK در اندروید رو مورد بررسی قرار دهیم.
NDK چیست ؟
NDK یک ابزاری است که به شما اجازه میده تا برنامه هایی که به زبان های C یا C++ نوشته شده است را در گوشی اندرویدی اجرا کنید. NDK برای ادغام با SDK در نظر گرفته شده است به همین علت یک companion tool (یک ابزار همراه) نامیده می شود و فقط برای بخش های عملکردی یک پروژه استفاده می شود هنگامی که یک برنامه به صورت ساده در اندروید نوشته می شود این برنامه توسط مفسرها به byte کد جاوا تبدیل می شود اما زمانی که یک برنامه به زبان C یا c++ نوشته می شود برنامه دیگر نیازی به مفسر ندارد چون براساس ساختر ماشین نوشته شده است و به صورت مستقیم با CPU در ارتباط است و زمانی که از NDK استفاده می کنید شما به صورت مستقیم با Cpu در ارتباط هستید پس می شود کارهایی کرد که به صورت عادی در اندروید امکان پذیر نیست را انجام داد. خلاصه که شما با فعال کردن این ویژگی می توانید از کل performance اندروید رو بکشید بیرون و ازش استفاده کنید.
نرمافزار Native چیست؟
ساخت و توسعه نرمافزارهای Native به این معناست که برای برنامه نویسی و توسعه نرمافزار خود از زبانهای اصلی سیستم عامل استفاده کنید. مثلا برای توسعه نرمافزار اندروید باید از زبان برنامه نویسی Java و برای توسعه نرمافزار آیفون باید از زبان برنامه نویسی Objective-C استفاده کنید. بزرگترین مزیت این حالت بازدهی (performance) بالای نرمافزار است، زمانی که شما برنامه خود را بصورت Native مینویسید کدهای شما به زبان ماشین کامپایل خواهند شد(Dalvik bytecode در اندروید) که همین موضوع باعث میشود شما حداکثر بازدهی ممکن از نرمافزار را داشته باشید. بازدهی بالا میتواند شامل افکتهای انیمیشن، روان کار کردن بخشهای مختلف برنامه، امکان استفاده از multi touch و خیلی موارد دیگه باشه که بدلیل دسترسی مستقیم به موقعیتهای حافظه و سختافزار گوشی اتفاق میفته.
چرا باید از NDK استفاده کرد ؟
در بالا گفتیم که شما می توانید از کل performance اندروید استفاده کنید.علت دوم اینکه شما شاید ترغیب شوید از NDK استفاده کنید اینکه سورس شما به این سادگی ها decompile نخواهد شد (تا حالا برنامه هایی که با NDK نوشته شده اند کرک یا decompile یا مهندسی معکوس نشده اند ). شما اگر به یک زبان برنامه نویسی مانند C یا C++ آشنا باشید و تا حالا با اندروید کار نکرده باشید می توانید برنامه اندروید بنویسید.
درکجا از NDK استفاده می شود ؟
بیشتر مواقع در زمانی که بخواهید یک برنامه خیلی پیشرفته بنویسید که امنیتش خیلی مهم باشه با C++ یا C این کار را انجام میدهند و یا بخواهند بازی بسازند.
در آموزش های بعدی نحوه اضافه کردن NDK و استفاده از آن را برای شما قرار میدهم.
موفق و پیروز باشید.
با ++C میشد، همه کاری کرد! فقط یکم بد جا افتاده. حیف این زبان قدرتمند!.
ممنون از مطالبتون
سلام ممنون از سایت عالیتون
من یک پروژه امپورت کردم که NDK داشت الان این اررور رو میده
Build command failed.
Error while executing process C:\sdk\ndk-bundle\ndk-build.cmd with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=C:\Users\Ali\Desktop\Vi\VirtualApp\lib\src\main\jni\Android.mk NDK_APPLICATION_MK=C:\Users\Ali\Desktop\Vi\VirtualApp\lib\src\main\jni\Application.mk APP_ABI=armeabi-v7a NDK_ALL_ABIS=armeabi-v7a NDK_DEBUG=1 APP_PLATFORM=android-16 NDK_OUT=C:/Users/Ali/Desktop/Vi/VirtualApp/lib/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT=C:\Users\Ali\Desktop\Vi\VirtualApp\lib\build\intermediates\ndkBuild\debug\lib APP_SHORT_COMMANDS=false LOCAL_SHORT_COMMANDS=false -B -n}
process_begin: CreateProcess(NULL, “”, …) failed.
C:/sdk/ndk-bundle/build//../build/core/add-application.mk:178: *** Android NDK: APP_STL gnustl_static is no longer supported. Please switch to either c++_static or c++_shared. See https://developer.android.com/ndk/guides/cpp-support.html for more information. . Stop.
لطفا کمک کنید ممنون