您的位置:首页 > 移动开发 > Android开发

Android NDK环境搭建和开发入门

2014-10-10 12:55 197 查看
第一次接触NDK开发,嘿嘿,刚写了个Demo测试成功,记录下环境的搭建过程和遇到的问题。

1、首先去下载一个NDK开发包,我使用的是android-ndk-r7,直接解压就OK了,D:\android-ndk-r7

记得设置环境变量 path = D:\android-ndk-r7;

2、安装CygWin,用来在Windows下模拟linux环境,编译我们写的的JNI代码。

3、CygWin安装成功之后,进入到安装的根目录,找到这个文件 -> /home/(你的用户)/.bash_profile,在文件的最后里面加入

NDK=/cygdrive/D/android-ndk-r7
设置NDK的路径,在CygWin里面测试设置是否成功 cd $NDK,进入NDK的目录则说明设置OK。

4、有时候NDK使用的awk.exe会过期,造成编译源码的时候失败,可以直接进入D:\android-ndk-r7\prebuilt\windows\bin目录,删除掉awk.exe即可。

接下来就可以开始写一个测试Demo了

C语言写的 native 函数的实现源码必须放到一个名字为jni文件夹内进行编译,这是必须的,不然会编译出错。

first-jni.c

#include<jni.h>
#include<string.h>

jstring
Java_com_iqiwh_car_MainActivity_firstJni(JNIEnv *env, jobject obj){
return (*env)->NewStringUTF(env, "This is my first jni test!");
}
对应的JNI函数命名规则:

Java_
+ 包名(com.lucyfyr) + 类名(MainActivity)
+ 接口名(firstJni):必须要按此JNI规范来操作

在CygWin里面进入到JNI目录,使用$NDK/ndk-build,来编译源码,编译成功会产生对应的.so文件,拷贝到Android项目工程libs目录里面。

然后在Activity里面加入代码,用来加载库文件

static {
System.loadLibrary("first-jni");
}


然后定义对应的native 函数

public native String firstJni();


在适当的位置直接调用就行了,函数会返回一个Java的String字符串。

一个简单的Demo。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: