Android studio ndk编程——(一)
编程环境:
- Android studio 2.3
- NDK 14
- grandle 2.14
linux 14.04
- 大环境配置
环境配置首先需要下载ndk,ndk可以直接在Android studio中下载,如下图所示:
然后,配置ndk的环境变量,先用vim编辑器打开bashrc文件,再在文件尾部添加环境变量,操作命令如下。
vim ~/.bashrc //用vim编辑器打开bashrc文件
export NDK_HOME =/home/android/sdk/ndk-bundle //bashrc文件尾部添加
export PATH =$NDK_HOME:$PATH bashrc文件尾部添加
最后,在Android studio中配置ndk路径。如下图:
- 新建工程
在新建一个Android project后,需要做以下几步:
- 打开grandle.properties文件,在文件尾部写一句代码,如果没有这一句,编译不通过。
android.useDeprecatedNdk=true
- 配置app目录的build.gradle。在defaultConfig节点下写入相关的配置。
defaultConfig {
...
ndk{
moduleName "ndk-demo" //要引用module的名字
ldLibs "log" //引用库的名字(选填)
abiFilters "armeabi" //配置需要编译出那些版本的so库(如果不写,就编译出所有版本的so库)
}
}
- 新建一个common类,写一个本地函数,System.loadLibrary的参数天的就是第二步在build.gradle中所配置的名字。
package demo.android.ndkdemo;
/**
* Created by android on 17-5-8.
*/
public class Common {
public static native String getStringFromC();
static{
System.loadLibrary("ndk-demo");
}
}
- 在工程的app目录下右键, 选择新建一个jni目录,目录路径在app/src/main/jni
- 打开Android studio下方的命令终端,输入以下命令,在jni目录下会自动生成相对应的.h头文件。
cd app/src/main/java
//进入该目录javah -d ../jni demo.android.ndkdemo.Common
//javah是Java生成头文件的工具;-d ../jni 表示生成的文件放到上一层的jni目录下;demo.android.ndkdemo.Common为包含native方法的类的全路径
- 最后,在jni目录下新建c文件,写入相关的功能。
//
// Created by android on 17-5-8.
//
#include "demo_android_ndkdemo_Common.h"
JNIEXPORT jstring JNICALL Java_demo_android_ndkdemo_Common_getStringFromC
(JNIEnv *env, jclass clz) {
return (*env)->NewStringUTF(env, "hello from jni,终于弄出来了");
}
最后在MainActivity中调用native方法,将字符串显示在界面上,点击运行即可看到效果。
demo下载地址:链接: http://pan.baidu.com/s/1dEBfDBj 密码: xa2i