打开sdk目录里的C:Android_SDKndk-bundle,把ndk-build.cmd的位置找到,这个用来编译c的
Main 文件夹下面创建jni,jni里有两个文件
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) # 编译生成的文件的类库叫什么名字 LOCAL_MODULE := jni #要编译的c文件 LOCAL_SRC_FILES := Main.c include $(BUILD_SHARED_LIBRARY)
#include#include #include /* Header for class date_hb_com_jninative_MainActivity */#ifndef _Included_com_example_nativec_MainActivity #define _Included_com_example_nativec_MainActivity #ifdef __cplusplusextern "C" { #endif double s_int; void int_comp(void);//整点运算 JNIEXPORT jstring JNICALL Java_com_example_nativec_MainActivity_get(JNIEnv * env, jobject obj){char buf[64];int_comp();sprintf(buf, "%f",s_int);return (*env)->NewStringUTF(env,buf);}JNIEXPORT void JNICALL Java_com_example_nativec_MainActivity_set(JNIEnv * env, jobject obj, jstring str){(*env)->NewStringUTF(env,"Hello JNI!");}#include //clock()所属头文件 const int N_qsort=10000;//快排的数据规模 const int M=20000,N=50000;//整点、浮点运算的规模 const int N_pi=100000000;//计算圆周率的运算规模void int_comp(void){//整点加法clock_t start,end;int i,j;start=clock();for(i=0;i 黑色加粗的地方都换成你的包名,然后这样用就可以调用get
public class MainActivity extends AppCompatActivity {static {System.loadLibrary("jni");}private native String get();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Log.e("--",get());} }这样即可编译
在mian目录下面编译
最后把生成的libs改成jniLib
GitHub地址 下载前给star
好了, 以上是本文所有内容,希望对大家有所帮助,也希望大家对码农之家多多支持,你们的支持是我创作的动力!祝大家生活愉快!