手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

基于ndk的jni调用

时间:2024-10-13 22:58:40

1、准备工作:下载NDK,配置环境变量,即将NDK的路径添加到PATH中,同时添加到eclipse的windows->preferences->Android->NDK的NDK Location中。

2、我先鲤噼险椅叙述一下总的流程,再分开叙述各步骤的实现。流程:第一步:在MainActivity中声明native方法;第二步:在项目中创建名叫jni的目录,接下来在其中生成.h文件;第三步:在jni目录中创建.c文件,实现本地方法;第四步:编译.c文件,生成.so文件;第五步:在Activity中加载.so文件;最后,在Activity的oncreate方法中中调用本地方法,运行项目。

3、一.在MainActivity中声明native方法:public native String stringFromJNI();具体请参考下面的代码:

基于ndk的jni调用

4、二.创建.h头文件1.先在项目中创建一个名叫jni的文件夹。2.在eclipse中,点击Run->External tools->稆糨孝汶;External tools Configer..,弹出如下的对话框。右键Program,点击new,然后就该填写右边的内容了。name:原则上可以随便写,但以体现其功能为要,我写的是:generate_c_header_file.Location:单击Variables,选system_path,之后在其后面加 :javah;后面的两个跟前面操作流程都一样,参考我的命令,结合你自己的具体情况就搞定了。我只着重说明一点,Arguements那一项的Variables选java_type_name;在键入的命令中你唯一可能跟我不同的地方是D:\adt-bundle-windows-x86_64-20131030\adt-bundle-windows-x86_64-20131030\sdk\platforms\android-19\android.jar这一部分,这是Android sdk目录中platforms里的android.jar包。至此,配置完成!

基于ndk的jni调用

5、配置完成后,让我们来生成头文件吧。注意两点:1、选中Activity,单击一下即可。2、如下图,单击generate_c_header_file。刷新项目,头文件就生成了!

基于ndk的jni调用

6、让我们生成的头文件看看里边的内容吧。内容重要的就这一点,这是你接下来要在c文件中实现的方法。

基于ndk的jni调用

7、第三步:实现本地方法。右键项目->Android Tools->Add Nat坡纠课柩ive Support..,系统会自动给我们在jni目录中生成android.mk文件和.cpp文件。若是由于第一次执行此生成方法则还需右键项目->properties->c/c++ general->Path and Symbols->add->File System…,找到NDK的目录中的platforms中的版本(任何一个都可以)中的相应平台(我的是arm平台)中的include文件夹,选中,点击确定。如下图。打开.cpp文件,实现本地方法。若有修改android.mk文件的必要再修改android.mk文件。如下图。

基于ndk的jni调用
基于ndk的jni调用

8、第四步:编译.c文件,生成.so文件。打开cmd,进入项目所在路径,输入命令ndk-build进行编译。然后刷新项目,就会发现多了一个obj文件夹,我们的.so文件就在这里边。

9、第五步:在Activity中加载.so文件只需要键入如下代码。

基于ndk的jni调用

10、最后,在Activity的oncreate方法中中调用本地方法,运行项目。至此,大功告成。

© 手抄报圈