Android_NDK JNI Native层构建java对象
常量指针和指针常量
//常量指针 100也就是常量不能改变
int num1 = 100;
const int *p = &num1;
//指针常量 p1指向的&num2也就是地址不能改变
int num2 = 200;
int * const p1 = &num2;
Native层构建java对象
JNIEXPORT jobject JNICALL Java_com_sweet_lib_1network_1sign_createPoint
(JNIEnv *env, jclass jclz){
// jclz -> Simple1
// 获取 Point 的 class ,name = "全类名"
jclass point_clz = (*env)->FindClass(env,"com/darren/ndk/day13/Point");
// 构建 java 层的 Point 对象,构造函数的id , 构造方法 <init>
jmethodID j_mid = (*env)->GetMethodID(env,point_clz,"<init>","(II)V");
jobject point = (*env)->NewObject(env, point_clz, j_mid,11,22);
// y 重新付个值,调用 set 方法
j_mid = (*env)->GetMethodID(env, point_clz,"setY","(I)V");
/* va_list 集合
void (JNICALL *CallVoidMethodV)
(JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
// jvalue
void (JNICALL *CallVoidMethodA)
(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue * args);
*/
(*env)->CallVoidMethod(env, point,j_mid,33);
return point;
}