例1:
**********************************************
jstring Jni_getChannelESG(JNIEnv* env, jobject thiz)
{
int result;
LOGD("Jni_getChannelESG");
result = getChannelESG();
jstring esgString =env->NewStringUTF(getEsgFile());
return esgString;
}
static jint Jni_initAsyncData(JNIEnv* env, jobject thiz)
{
LOGD("Jni_initAsyncData");
int result = InitAsyncData();
return result;
}
static void Jni_setPreviewDisplay(JNIEnv *env, jobject thiz, jobject jSurface)
{
LOGD("Enter Func: %s, Line: %d", __FUNCTION__, __LINE__);
sp<Surface> spSurface = NULL;
if (jSurface != NULL) {
spSurface = reinterpret_cast<Surface*>(env->GetIntField(jSurface, fields.surface));
}
initEngineOverlay(spSurface);
LOGD("Leave Func: %s, Line: %d", __FUNCTION__, __LINE__);
}
static JNINativeMethod gMethods[] = {
{
"setCurrentValue",
"(I)V",
(void *)Jni_setCurrentValue
},
{
"getChannelESG",
"()Ljava/lang/String;",
(void *)Jni_getChannelESG
},
{
"setPreviewDisplay",
"(Landroid/view/Surface;)V",
(void *)Jni_setPreviewDisplay
},
};
*****************************************************
public native void setPreviewDisplay(Surface surface);
public native int initAsyncData();
public native String getChannelESG();
*****************************************************
参考文章
http://my.unix-center.net/~Simon_fu/?p=833
http://my.unix-center.net/~Simon_fu/?p=836
http://blog.chinaunix.net/u3/113547/showart_2212838.html