1.创建工程

2.在app\main\cpp\中的CMakeList.txt 中添加需要编译的c、cpp文件
以及native-lib.cpp
3.在app.src.java.com中MainActivity中添加头文件接口
如:

//原接口.C/.cpp
para1 :传入数组   para2:输出数组   single:输出单个值 
//public int  test(uchar*  para1,uchar* para2,float* signle)
//声明对应的android 接口
public native int  test(byte[]  para1,byte[] para2,float[] signle)
注意:android的接口名不要带有下划线,否则会被认为包名分隔符,结果会出现不存在改函数接口

4.在app.src.main.cpp的native-lib.cpp中定义adroid接口函数:


extern "C" JNIEXPORT jint JNICALL
Java_com_*****_test(JNIEnv* env,jobject CsFpAlg,jbyteArray para1,
	jbyteArray para2,jfloatArray single)
{
    int  ret; 
	float     s;
	uchar *  p1=(uchar*) env->GetByteArraryElements(para1,0);
	uchar     p2[1000];
	ret=test(p1,p2,&s);
	env->SetByteArraryRegion(para2,0,1000,(jbyte*)p2);
	env->SetByteArraryRegion(single,0,1,&s);//同 int
	return ret;
}

注 : typedef unsigned char uchar
5.开始makefile

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐