加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

logo

logo
  • 点赞
  • 评论
  • 分享
免费
课程章节
  • 课程介绍
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱
中级

如何用JAVA调用C++

2018/09/13
571
阅读需 2 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

课程介绍

在一些Android应用的开发中,需要通过JNIAndroid NDK工具实现JAVAC/C++之间的相互调用。

Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI是本地编程接口,它使得在Java虚拟机(VM)内部运行的Java代码能够与用其它编程语言(如CC++和汇编语言)编写的应用程序和库进行交互操作。

由于Android应用层的类都是以Java写的,这些Java类编译为Dex型式的Bytecode之后,必须靠Dalvik虚拟机(VM: Virtual Machine)来执行。在执行Java类的过程中,如果Java类需要与C组件沟通时,VM就会去载入C组件,然后让Java的函数顺利地调用到C组件的函数。此时,VM扮演着桥梁的角色,让JavaC组件能通过标准的JNI介面而相互沟通。

在实际应用中这两者之间的调用关系可以归纳为以下四种方式:

1. 在应用的JAVA代码中调用NDKC/C++实现的函数。

2. NDK开发中的C/C++代码调用应用中JAVA类的静态函数。

3. NDK开发中的C/C++代码调用应用中JAVA类当前传入NDK中的实例的函数。

4. NDK开发中的C/C++代码调用应用中JAVA类新建实例的函数。

相关推荐

电子产业图谱