1.android开发用eclipse怎么调用c代码
在一些Android应用的开发中,需要通过JNI和 Android NDK工具实现JAVA和C/C++之间的相互调用。
Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI是本地编程接口,它使得在 Java 虚拟机 (VM)内部运行的 Java代码能够与用其它编程语言(如 C、C++和汇编语言)编写的应用程序和库进行交互操作。
由于Android的应用层的类都是以Java写的,这些Java类编译为Dex型式的Bytecode之后,必须靠Dalvik虚拟机(VM: Virtual Machine)来执行。在执行Java类的过程中,如果Java类需要与C组件沟通时,VM就会去载入C组件,然后让Java的函数顺利地调用到C组件的函数。
此时,VM扮演着桥梁的角色,让Java与C组件能通过标准的JNI介面而相互沟通。 在实际应用中这两者之间的调用关系可以归纳为以下四种方式: 1. 在应用的JAVA代码中调用NDK中C/C++实现的函数。
2. 在NDK开发中的C/C++代码调用应用中JAVA类的静态函数。 3. 在NDK开发中的C/C++代码调用应用中JAVA类当前传入NDK中的实例的函数。
4. 在NDK开发中的C/C++代码调用应用中JAVA类新建实例的函数。
2.android开发用eclipse怎么调用c代码
在一些Android应用的开发中,需要通过JNI和 Android NDK工具实现JAVA和C/C++之间的相互调用。
Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI是本地编程接口,它使得在 Java 虚拟机 (VM)内部运行的 Java代码能够与用其它编程语言(如 C、C++和汇编语言)编写的应用程序和库进行交互操作。
由于Android的应用层的类都是以Java写的,这些Java类编译为Dex型式的Bytecode之后,必须靠Dalvik虚拟机(VM: Virtual Machine)来执行。在执行Java类的过程中,如果Java类需要与C组件沟通时,VM就会去载入C组件,然后让Java的函数顺利地调用到C组件的函数。此时,VM扮演着桥梁的角色,让Java与C组件能通过标准的JNI介面而相互沟通。
在实际应用中这两者之间的调用关系可以归纳为以下四种方式:
1. 在应用的JAVA代码中调用NDK中C/C++实现的函数。
2. 在NDK开发中的C/C++代码调用应用中JAVA类的静态函数。
3. 在NDK开发中的C/C++代码调用应用中JAVA类当前传入NDK中的实例的函数。
4. 在NDK开发中的C/C++代码调用应用中JAVA类新建实例的函数。
3.如何在android下用c++进行编写程序
可以用NDK写Android应用,但是有很多限制。
Android应用归根到底还是Java的。NDK只是用Java调用C/C++写的逻辑而已。只不过后来加入了Native Activity功能,使开发者可以完全不去考虑Java只写C/C++,但并不是Java逻辑不存在,只不过完全被封装起来了。
用纯C/C++开发主要是游戏一类不太需要Java API提供的功能的应用。因为NDK的API很底层并且很有限,而从C/C++反过来调用Java API不管从开发的复杂度还是性能上说成本都是很大的。而一般来说面临的最大压力就是界面引擎。NDK里能拿来画界面的只有最底层的OpenGL了,也就是只能从多边形这个级别自己一点画。而且控件的交互逻辑也是要自己写的。
转载请注明出处育才学习网 » android调用c代码怎么写