android jni

例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

你可能感兴趣的:(android,String,function,jni,null)