正常的Android开发过程中,难免会出现需要大量的计算,这时候,我们可能就会想到,需要提高计算的速度,这里可能想到利用c/C++,来提高运算速度,那我们这时候,就需要接触到这方面的相关知识了,下面我们作一下简单的实例测试,需要用的工具,包括Android SDK,NDK
创建项目
首先我们创建一个简单的Android项目,然后在layout布局文件上,加一个简单的textview,取名ID为,labelTxt,设置字内容为HelloAndroid.在MainActivity里定义一个方法方法,同时添加载入SO文件的逻辑,内容如下 :
在onCreate方法里添加如下内容:
Java调用C++
这里,我自己手动编写CPP(com_nikoer_helloandroidapp_MainActivity.cpp)文件内容如下:
这里我用的的是C++编译,所以用到了extern “c”
在项目根目录下建一个jni目录,把CPP文件复制进去,在jni目录下编写Android.mk文件,跟Application.mk文件,
Android.mk:
Application.mk:
在jni目录下,运行命令行,输入:ndk-build (当前前掉得设置ndk的环境变量,才可以运行ndk-build命令),用eclipse刷新项目,运行目录。是不是发布HelloWorld变成了JNI Value.
C++调用Java
这里我们封闭一个类出来JniHelper,内容如下:
JniHelper.h
JniHelper.cpp
修改入口文件com_nikoer_helloandroidapp_MainActivity.cpp:
修改Android.mk:
修改JavaActivity,添加如下方法
运行:ndk-build,再用Eclipse刷新项目,运行项目,是不是变成时间字符串了
源文件参考:下载