سلام دوستان امروز شروع برنامه نویسی NDK در اندروید استودیو را اجرا کردیم سعی می کنیم آموزش های مختلفی را برای NDK قرار دهیم در آموزش های قبلی NDK و نحوه پیکربندی NDK را توضیح دادیم در امروز اولین برنامه Hello World را در آن جلو خواهیم برد و کم کم وارد محیط برنامه نویسی c++ / C می شویم و می توانید به راحتی برنامه های خود را در زبان های C یا C++ بنویسید و اندروید استودیو آن را Compile کنید با ما همراه باشید.
در صورتی که اطلاعاتی در مورد NDK ندارید می توانید از لینک زیر آن را مطالعه کنید.
این کار باعث می شود ورژن گریدلی که با NDK قابل استفاده از برای شما یک جورایی پیکربندی شود. ورژن Stable برای شما جایگزین می شود. حالا وارد فایل Build.Gradle از نوع Module شده سپس کد زیر را با کد قبلی خود جایگزین کنید (نباید همه کد رو کپی پیست کنید !)
اگر فکر کنیم کد بالا برای Gradle شما وجود دارد در بالا فقط باید خط زیر اضافه شود.
NDK
1
2
3
ndk{
moduleName"hello-android-jni"
}
در بالا نام Module ما برابر با hello-android-jni است در ادامه آن را خواهید دید. وارد اکیتویتی که دارید شده برای ما MainActivity.java است و کد زیر را در آخر آن قرار دهید.
Load C code in android studio
1
2
3
4
5
static{
System.loadLibrary("hello-android-jni");
}
publicnativeStringgetMsgFromJni();
}
کد بالا عمل load کد C ما را انجام خواهد داد باید خطا داشته باشید بخش getMsgFromJni برای شما قرمز رنگ شده باشد صبر کنید خطا رفع می شود. حالا باید یک پوشه به نام jni درست کنید این کار باید همانند زیر انجام شود نباید دستی ساخته شود. ابتدا همانند عکس زیر پوشه را ایجاد کنید.
سپس کد زیر را در یک محیط مثل Visual studio یا نوت پد ساده قرار دهید و با پسوند cpp ذخیره کنید شما می توانید فقط کد را کپی کرده سپس بروی پوشه jni دکمه CTRL + V را فشار دهید سورس اتوماتیک ساخته می شود ! نام فایل باید hello-android-jni.cpp باشد.
C++ / C code
1
2
3
4
#include <jni.h>JNIEXPORT jstring JNICALL
Java_ir_programchi_jfp_MainActivity_getMsgFromJni(JNIEnv *env,jobject instance){// TODO
return(*env)->NewStringUTF(env,"Hello From Programchi.ir best android source");
}
دقت کنید باید بخش ir_programchi_jfp_MainActivity را متناسب با نام package و اکتیویتی تغییر دهید . خب حالا قبل از اینکه برنامه را اجرا کنید یک TextView با آیدی jni_msgView قرار دهید و همانند زیر آن را در متود Oncreate اکتیویتی صدا بزنید.
یک پاسخ به “شروع برنامه نویسی NDK در اندروید استودیو”
با سلام وخسته نباشید من در ابتدا طبق گفته مطلب خودتون ndk رو دانلود وبعد پیکر بندی میکنم ولی زمانی که اینcompile ‘com.android.tools.build:gradle-experimental:0.9.3’ خط رو جایگزین classpath ‘com.android.tools.build:gradle:3.1.4’ خودم میکنم و پروژه رو سینک میکنم این ارور رو میده ممنون میشم راهنماییم کنید Could not find method compile() for arguments [com.android.tools.build:gradle-experimental:0.11.1] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
با سلام وخسته نباشید
من در ابتدا طبق گفته مطلب خودتون ndk رو دانلود وبعد پیکر بندی میکنم
ولی زمانی که اینcompile ‘com.android.tools.build:gradle-experimental:0.9.3’ خط رو جایگزین classpath ‘com.android.tools.build:gradle:3.1.4’ خودم میکنم و پروژه رو سینک میکنم این ارور رو میده ممنون میشم راهنماییم کنید
Could not find method compile() for arguments [com.android.tools.build:gradle-experimental:0.11.1] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.