JNI简介

来源:互联网 发布:php判断变量是否设置 编辑:程序博客网 时间:2024/04/30 08:28

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"); }
0 0