配置NDK

来源:互联网 发布:不明觉厉等网络流行语 编辑:程序博客网 时间:2024/04/29 02:11

由于Android运行的手机配置千差万别,所以在配置较低的手机上运行某些程序可能会运行不了,其原因有可能就是因为配置太低。由于Android采用的是Java编程,是一种虚拟机的机制,所以其运行效率上会很有影响,通常较好的做法是,如果遇到刷屏或者操作网络层的数据,而且数据交换频繁的情况下,建议使用底层的C或者C++来完成费时的动作。所以这就涉及到Java与C的相互调用。

Java是不能直接调用C写的dll, 或者exe代码或者库文件。需要使用到NDK进行中间转换。 NDK的安装请参考我转载的另一篇文章,我是参考那篇文章配置好NDK的。

1。NDK安装好后, 把写的.c文件拷贝过来,新建一个jni文件夹,然后把.c文件放在这个文件夹下,

2。启动cygwin程序,然后cd到这个jni文件夹,输入命令$NDK/ndk-build命令后,命令成功后,会生成一个libs文件夹,并把生成的so文件放置在里面。程序中再把这个libs文件夹加入进来,与jni同级.

3。在.java代码中调用这个.c中的函数。 如使用:_textview.setText( stringFromJNI() ); 就可以使用了。这样就完成了在java中调用.c代码。


但在Eclipse中看这个.c文件是属于不识别状态,那是因为没有安装C/C++的环境插件:CDT,按照我转载的另一篇文章讲如何 NDK的文章中有提到,安装完这个CDT后,再次打开Eclipse可以看到,这个.c文件是可以并查看并可以被修改。但是如果修改后想进行重新编译这个.c文件,还是需要用NDK的命令,重新生成.so文件,然后在代码中进行调用。

注意查看这个.c文件中的函数名,如:Java_com_example_hellojni_HelloJNI_stringFromJNI ();

其中:Java在前面是必须的,然后跟的是使用这个方法的那个包名com.example.hellojni;然后是当前项目名称HelloJNI, 然后才是具体的函数名。在Android中调用这个方法使用stringFromJNI()来进行调用.