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

Android NDK编程

2016-03-29 16:59 471 查看

Android Studio 下 NDK 编程

参考:http://www.jianshu.com/p/e689d0196a17

第一步

配置 NDK 路径

File->Project Structure->SDK Locationl 里面添加路径

Android NDK location should not contain whitespace, as this can cause problems with the NDK tools.

Android NDK 的位置不应包含空格,因为这可能会导致与 NDK 工具问题。

第二步

gradle.properties 配置

android.useDeprecatedNdk=true


第三步

工程内的 build.gradle 添加 ndk 配置

defaultConfig {
applicationId "test.com.asproject"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"

ndk {
moduleName "JniTest"
ldLibs "log", "z", "m"
abiFilters "armeabi", "armeabi-v7a", "x86"
}
}


第四步

新建一个JNI调用类

package com.test.jni;

public class JNIUse {

static {
System.loadLibrary("JniTest");//与第三步的NDK模块命名要一致
}

public static native String getStringFromNative();
}


第五步

main目录下新建一个名为JNI的文件夹(这一步如果没有,不能自动生成.c)

getStringFromNative()会提示

Create function Java_com_test_jni_JNIUse_getStringFromNative

根据系统提示自动创建生成 JniTest.c

#include <jni.h>

JNIEXPORT jstring JNICALL
Java_com_test_jni_JNIUse_getStringFromNative(JNIEnv *env, jclass type) {
//TODO
return (*env)->NewStringUTF(env, "Seselin Test JNI");
}


第六步

Rebuild project

build/intermediates目录下会生成ndk文件夹,里面包含.so

第七步

在主工程里调用你的NDK方法

附录

以上为自己新建 .so 的过程

调用已有 .so 时只要把.so 放在 lib 文件下(具体步骤见: Android下的.so库使用)

同时在工程的 build.gradle 内

android {
。。。
sourceSets {
main {
。。。
jniLibs.srcDirs = ['libs']
}
。。。
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: