NDK开发环境配置

xiaoxiao2021-02-28  67

简述:JNI: Java本地接口,一种Java和C、C++的语言协议

          NDK :NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的.

1、下载android-ndk-r14b-windows-x86_64.zip开发包

下载地址:https://developer.android.com/ndk/downloads/index.html

2、解压,配置环境变量path

3、新建一个工程

4、修改local.properties文件:

添加以下代码:

ndk.dir=D\:\\AndroidStudio\\sdk\\android-ndk-r14b

5、修改gradle.properties,这样可以兼容低版本,貌似官方不推荐用这种方式了?

android.useDeprecatedNdk=true

6.新建Java类

public class JNI { { System.loadLibrary("Hello"); } /** * 定义native方法 * 调用C代码对应的方法 * @return */ public native String sayHello(); }

7.在main中新建包jni

新建.c类

#include <stdio.h> #include <stdlib.h> #include <jni.h> /** * jstring :返回值 * Java_全类名_方法名 * JNIEnv* env:里面有很多方法 * jobject jobj:谁调用了这个方法就是谁的实例 * 当前就是JNI.thi */ jstring Java_com_example_yang_ndk_JNI_sayHello(JNIEnv* env,jobject jobj){ //jstring (*NewStringUTF)(JNIEnv*, const char*); char* text = "I am from c!!!"; return (*env)->NewStringUTF(env,text); }

8.配置cpu

在app/bulid.gradle文件中的defaultConfig中配置

ndk{ moduleName "Hello" //so文件: lib+moduleName+.so abiFilters "armeabi", "armeabi-v7a", "x86" //cpu的类型 }

9、刷新工程rebuild

10、可能会报的错误:1.必须是R9以上的NDK   2.在file->setting->plugins->AndroidNDKsupprot里的勾去掉。

11、调用JNI类的方法,会间接调用C语言的代码。

高级AS新的方式?:

http://blog.csdn.net/u013144863/article/details/53055541

转载请注明原文地址: https://www.6miu.com/read-81712.html

最新回复(0)