android studio 3.2---NDK配置

1 篇文章 0 订阅

android studio 3.2—NDK配置

之前写了一篇Android studio 2.0 的配置,现在写一下3.2的配置
1.配置ndk
ndk 默认是下载sdk目录文件夹下的配置如图:
在Project Structure中下载配置
2.首先新建引用原生的java 类

public class JniTest {
    public static native int getAdd(int a, int b);
}

3.生成头文件(.h文件)
配置的好sdk环境变量可以直接在Terminal中执行一下代码

javah -d ../jni 包名.类名
我这里是---》javah -d ../jni com.dascom.testjindemo.JniTest

成功之后会出现 jni 的文件夹,如图:
生成头文件
头文件的内容:
.h的文件内容
4.新建.c或者.cpp文件,方法内容和头文件一致:
MyJni.cpp文件
5.新建Android.mk和Application.mk文件
Android.mk
这是Android.mk
其中:
LOCAL_MODULE —生成动态库的名字
LOCAL_SRC_FILES—关联jni文件夹下的.c或者.cpp 的文件名字,多个文件用“\”分开

Application.mk文件:
生成so的架构信息
现在jni目录下全文件如图:
现有的jni文件下的文件
6.在build.gradle中添加

android{ ...
   sourceSets{
       main{
           jni.srcDirs=[] //不使用gradle编译本地c/c++代码
           jniLibs.srcDirs = ['libs','src/main/libs']//加载so库 lib是第三方so src/main/libs是准备生成的so库位置
       }
    } 
}

以及 在gradle.properties文件中,没有就新建一个,添加android.useDeprecatedNdk=true
7.在Terminal(定位到main 层级)执行ndk-build(注:-前后没有空格)
执行ndk-build 的日志
之后会生成:
生成so
8.在TestJni.java中添加:

  static {
        System.loadLibrary("MyJni");
    }
 public static native int getAdd(int a, int b);
MyJni这个必须和Android.mk中的名字一致

之后在页面引用:
TestJni.getAdd(2,3)可以得到结果

如果想生成jar可以参考:

Android Studio 手把手教你NDK打包SO库文件,并提供对应API 使用它(赋demo)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值