//my class
class NDKSupport {
// Loding library
static {
System.loadLibrary("NDKTest");
}
// Stuff in NDKSupport
public native String getMessageFromNDK(NDKSupport support);
public String getMessage() {
// doing some stuff over here
return "SOME RESULT";
}
}
//Native code
JNIEXPORT jstring JNICALL
Java_com_afbb_ndkcheck_NDKSupport_getMessageFromNDK(
JNIEnv* env, jobject thiz, jobject ndkSupport) {
jclass ndkSupportClz = env->GetObjectClass(ndkSupport);
jmethodID getInstallationSource =
env->GetMethodID(ndkSupportClz,"getMessage", "()Ljava/lang/String;");
return (jstring)env->CallObjectMethod(mainActivity, getInstallationSource);
}
現在,在另一個類,我創建對象並調用2種方法都將做同樣的東西。無論是在表現上還是在另一個方面,這兩個電話之間有什麼區別。來自本地方法調用的普通方法調用有什麼區別?
NDKSupport support = new NDKSupport();
// what is the difference between these two calls
String d = support.getMessage();
String d2 = support.getMessageFromNDK(support);
給我一些關於這方面的信息,或者如果有任何教程可用。 對不起,我的英語..
@Canar謝謝你的回覆。你提到「本地方法的主要缺點是你不具備跨平臺功能。」這裏是什麼跨平臺的。你能否詳細說明一下。 – shobhan