Android Studio NDK及so文件开发

来源:互联网 发布:淘宝怎么发视频评价 编辑:程序博客网 时间:2024/06/01 08:14

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>jstringJava_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中封装的字符