android使用native c++开发
下载ndk,这个界面在File里面
打开sdk目录里的C:\Android_SDK\ndk-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 <jni.h> #include <stdio.h> #include <stdlib.h> /* Header for class date_hb_com_jninative_MainActivity */ #ifndef _Included_com_example_nativec_MainActivity #define _Included_com_example_nativec_MainActivity #ifdef __cplusplus extern "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 <time.h>//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<M;i++) for(j=0;j<N;j++); end=clock(); double duration=(double)(end-start)/CLOCKS_PER_SEC; double score=(M*N)/duration; /*注:score本身即为运算速度,数量级一般在亿,为方便起见,本程序的分数均采用运算速度除以一万后的结果!除特殊说明,后面类同!*/ s_int=score/10000; //printf("整点运算测试完毕!分数:%lf\n",s_int); } #ifdef __cplusplus } #endif #endif
黑色加粗的地方都换成你的包名,然后这样用就可以调用get
public class MainActivity extends AppCompatActivity { static { System.loadLibrary("jni"); } private native String get(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.e("--",get()); } }
这样即可编译
在mian目录下面编译
最后把生成的libs改成jniLib
GitHub地址 下载前给star
分类:
Android开发
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)