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

Android Studio NDK及so文件开发

2017-08-03 09:57 471 查看


1. NDK安装及配置

打开Setting => Appearance & Behavior => System Settings => Android SDK

   选择SDK-Toos 勾选红色箭头部分点击Apply进行安装,如果Status状态为Installed说明你已经安装过了



2. 配置NDK环境变量

   安装好的NDk一般位于你的sdk文件夹下的ndk-bundle。

   我的位置在,如下:





   然后将该路径配置到你系统变量的path里面去,如下:



   添加完毕后打开cmd,输入ndk-build,出现如下内容则表示成功:



3.so库开发,新建本地 方法

如下,在MainActiviy.java中建立了一个方法



public native String getString();


可以看到这个方法的声明中有native关键字,这个关键字表示这个方法是本地方法,也就是说这个方法getStrFromJNI()是通过本地代码(C/C++)实现的,在java代码中仅仅是声明。

 4. 编译该类得到对应的.h文件

切换到Terminal,进入到该工程的 java 目录下(如下图所示),然后输入

javah -jni 包名.类名



编译成功后,刷新下工程可以看到编译出的.h文件,该文件只是为了辅助我们写出相应的.c文件, 如下图



 .h文件内容如下图:




5.  编写.c文件

这时我们切换到Project,然后在app目录下新建jni文件夹,并在里面建立一个huazict.c的c文件(如下图所示)



.c文件中编写最基本的测试代码:

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

jstring
Java_Java_com_scott_ndkcreatso_MainActivity_getString(JNIEnv *env,
jobject thiz) {
return  (*env)->NewStringUTF(env, "这是我测试的jni");
}


6. build项目 生成各CPU需要SO文件

导航栏中Build---ReBuild project 会在工程app>build>intermediates>ndk>debug>lib下看到所生成的SO文件






7. 在项目中实践并调用

导入JNIUtils引用工具类,在MainActivity中调用输入出so中封装的字符





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