1)我到网上查了 JNINativeMethod 数据结构的解释,第一个变量name是Java中函数的名字, 在Led jni层的 demo中, 该数据结构定义如下:
static JNINativeMethod method_table[] = {
{ "led_init", "()Z", (void*)Java_com_embedsky_led_LedActivity_ledInit },
{ "led_setOn", "(I)Z", (void*)Java_com_embedsky_led_LedActivity_ledSetOn },
{ "led_setOff", "(I)Z", (void*)Java_com_embedsky_led_LedActivity_ledSetOff },
{ "led_close", "()Z", (void*)Java_com_embedsky_led_LedActivity_ledClose },
};
2) APP层 定义的函数如下:
//初始化led
public static native boolean ledInit();
//关闭led
public static native boolean ledClose();
//点亮led
private static native boolean ledSetOn(int number);
//灭掉led
private static native boolean ledSetOff(int number);
3)led_init 变成了 ledInit, led_setOn 变成 ledSetOn, led_setOff 变成 ledSetOff, led_close 变成 ledClose。 这是怎么回事?
|