رفتن به مطلب
برای استفاده از انجمن و عضـویت کلیک کنید.

AnswerCenter

مرکز پاسخگویی به سوالات برنامه نویسی

درخواست سفارش پروژه

اطلاعیه

کاربر گرامی

به انجمن برنامه نویسی AnswerCenter.ir خوش آمدید

 برای استفاده از تمامی امکانات سایت لطفا در انجمن عضو شوید


بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

امین مهدی نژاد

قطعه کدهای JNI

پست های پیشنهاد شده

امین مهدی نژاد    1,913

معاون انجمن

چند تا از قطعه کدهایی که در CPP که نوشته  و به عنوان نمونه میشه ازش استفاده کرد رو در اینجا قرار خواهم داد

تابع newInstance

این تابع رو برای یکی از کتابخونه هام نوشتم.کارش هم ساخت آبجکت بر اساس نام کلاس- فرمت سازنده  و آرایه ای از آرگومان های مورد نیاز سازنده است

#include <jni.h>
#ifdef __cplusplus
extern "C" {
#endif

JNIEXPORT jobject JNICALL Java_ir_amin_irConstructor_newInstance
  (JNIEnv* pEnv, jobject pThis,jstring jstrCls,jstring jstrArg,jobjectArray jargList)
{
	jsize len = pEnv->GetArrayLength(jargList);
	jvalue values[len];
  for (int i=0; i<len; i++) {
  values[i].l=pEnv->GetObjectArrayElement(jargList,i);
    }
	jclass cls = pEnv->FindClass(pEnv->GetStringUTFChars(jstrCls, 0));
	jmethodID jmtdID = pEnv->GetMethodID(cls, "<init>", pEnv->GetStringUTFChars(jstrArg,0));
	return pEnv->NewObjectA(cls, jmtdID, values);
}
#ifdef __cplusplus
}
#endif

توضیحات:

خط زیر سایز آرایه آرگومان ها رو مشخص می کنه

jsize len = pEnv->GetArrayLength(jargList);

قسمت زیر هم آرایه از اشیا رو به آرایه ای از نوع jvalue تبدیل می کنه

	jvalue values[len];
  for (int i=0; i<len; i++) {
  values[i].l=pEnv->GetObjectArrayElement(jargList,i);
    }

و در نهایت مشخص کردن کلاس-متد سازنده و ساختن یک شی از کلاس مورد نظر

	jclass cls = pEnv->FindClass(pEnv->GetStringUTFChars(jstrCls, 0));
	jmethodID jmtdID = pEnv->GetMethodID(cls, "<init>", pEnv->GetStringUTFChars(jstrArg,0));
	return pEnv->NewObjectA(cls, jmtdID, values);

با ساخت یک آبجکت از کلاسی در CPP میشه به راحتی از متدهای اون استفاده کرد و به این ترتیب کلیه API اندروید در دسترس و می تونین قسمتی از کدهای جاوا و یا بیسیک خودتون رو به بستر cPP منتقل کنید تا امنیت آپ خودتون بیشتر بشه.

«موفق باشید.»

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

×
×
  • جدید...