在Android开发中要想连接贯通Java、C、C++语言,你需要用到JNI。JNI的全称是Java Native Interface,它并不是Android专有的,而是从Java继承来的,但是在Android中,JNI的作用和重要性大大增强了,比如在编译、应用打包、安装、程序装载等各方面都对JNI进行了有力的支持。
Android作为一种嵌入式操作系统,有大量和驱动、硬件相关的功能必须在native层实现,另外一些注重性能、功耗的功能使用C、C++来实现也优于用Java来实现。
Java语言的执行离不开虚拟机,因此在Java代码中调用C、C++的函数时,需要告诉虚拟机哪个方法代表本地的函数,在哪里能找到这个函数,反之也一样。
但这两者还是有一些区别:从Java到C、C++建立的是函数间的关联,而从C、C++到Java必须先得到Java对象的引用,才能调用该对象的方法。
另外因为Java是纯面向对象的语言,所以从C、C++中调用Java必须和对象打交道,而不像C、C++中对象和函数可以混用。
http://yuantuan.com/index/index/waibao
最佳答案
