Android Studio NDK及so文件开发

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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值