extern "C" JNIEXPORT jstring JNICALL
Java_com_mindorks_androidndkexample_MainActivity_stringFromJNI( JNIEnv *env, jobject /* this */) {
std::string hello = "Hello, World!";
return env->NewStringUTF(hello.c_str());
}
Yuqoridagi kodni o'rganib chiqamiz:
Bu C ++ kodi bo'lgani uchun ba'zi kutubxonalarni shu ko'rinishda belgilaymiz:
#include
Yuqoridagi misolda com_mindorks_androidndkexample package nomi, MainActivity activity nomi va stringFromJNI bu native koddan String qiymat qaytaradigan va Java/Kotlin kodda chaqiriladigan metod hisoblanadi.
Nihoyat, return orqali biz funktsiyadan salom satrini qaytarayotganimizni ko'rishingiz mumkin.
Hozircha biz native qismni tugatdik. Keling, Kotlin kodimiz orqali Nativeda yaratilgan funksiyalarni qanday chaqirishni ko'rib chiqamiz.
// Used to load the 'native-lib' library on application startup.
init {
System.loadLibrary("native-lib")
}
Endi biz native-lib.cpp faylida ishlatilgan nomga ega bo'lgan Kotlin tashqi funktsiyasini e'lon qilishimiz kerak bo'ladi.
/**
* A native method that is implemented by the 'native-lib' native library,
* which is packaged with this application.
*/
external fun stringFromJNI(): String
Nihoyat, native-lib.cpp faylida mavjud bo'lgan funktsiyadan quyidagi qiymatlarni olishingiz mumkin:
// Example of a call to a native method
sample_text.text = stringFromJNI()
Yuqoridagi barcha kodlar sizning loyihangizda oldindan mavjud. Endi, shift+f10 tugmachalarini bosib ilovani ishga tushiring va natijani ko'ring.
"Calculator App" dasturi Android NDK da
Keling endi, foydalanuvchidan ma'lumot oladigan va quyidagi to'rtta amalni bajaradigan bitta kalkulyator ilovasini tuzamiz (biz faqat mantiqiy qismini qamrab olamiz):
Qo'shish
Ayirish
Ko'paytirish
Bo'lish
Xuddi "Hello, World!" misolida ko'rganimizdek biz birinchi o'rinda native-lib.cpp ichida metodlarimizni yaratishimiz kerak bo'ladi. Bunda "Calculator app" da biz yuqoridagi to'rtta operatsiyani bajarish uchun to'rt xil metodlarni yaratamiz.
//Addition function
Do'stlaringiz bilan baham: |