JNI
交叉编译
- 在一个平台下,编译出另一个平台能够执行的二进制代码
- 平台:Windows,mac os,Linux
- 处理器:X86,arm,mips(指令集不同,默认情况下彼此之间不兼容)
交叉编译原理
- 源代码->编译->链接->可执行程序
- 模拟其他平台的特性(模拟Linux或者arm的指令,指令集)
- *
交叉编译的工具链
- 多个工具的集合,一个工具使用完后调用下一个工具
常见工具
- NDK : Native Development Kit:开发JNI必备,模拟其他平台特性
- CDT : C/C++ Development Tools:高亮显示C语言关键字
- cygwin : 一个模拟器,可以在Windows下运行Linux指令
- *
JNI视频笔记
在C语言中定义字符串
char* cstr = "hello from c";//一般都用这种方式 //还可以: char cstr[] = "hello from c";
把C语言的字符串转换成Java的字符串
jstring jstr = (*env)->NewStringUTF(env,cstr); return jstr;
Android.mk文件:要让NDK编译c文件的必须文件
so文件:C语言编译打包的类库
在Java中加载打包的类库:
static { //加载打包完毕的类库 System.loadLibrary("MyJni"); }