安卓生成c语言动态库.so文件存放密钥

1、ndk环境

       

安卓生成c语言动态库.so文件存放密钥_第1张图片

下载好箭头所指的插件

2.编写代码

编写JniUtil类

package com.svautolife.desaysv;

/**
 * Created by linmingxing on 2018/10/29 17:04
 */
public class JniUtil {
    static {
        System.loadLibrary("JniUtil");
    }

    public static native String getSslPwd();
}
编译项目

安卓生成c语言动态库.so文件存放密钥_第2张图片

此时在app/build/intermediates/classes/debug/com/svautolife/desaysv位置会生成class文件

安卓生成c语言动态库.so文件存放密钥_第3张图片

此时打开终端,进入app/src/main目录下输入命令:

java -d jni -classpath /Users/linmingxing/vehicle/Android_DesaySV/app/build/intermediates/classes/debug/com/svautolife/desaysv/JniUtil

此时会在jni文件夹中生成.h文件。在jni问价夹中再新建两个.mk文件和一个.c文件

安卓生成c语言动态库.so文件存放密钥_第4张图片

将.h文件中的内容复制到.c文件中,并实现里面的方法。安卓生成c语言动态库.so文件存放密钥_第5张图片

Android.mk文件

 安卓生成c语言动态库.so文件存放密钥_第6张图片

Application.mk文件

安卓生成c语言动态库.so文件存放密钥_第7张图片

 

build.gradle配置

安卓生成c语言动态库.so文件存放密钥_第8张图片

添加模块名称muduleName

再次编译(build一下)项目。

打开终端,进入jni目录下,输入ndk-build进行编译。

若编译报错,则添加这个配置

安卓生成c语言动态库.so文件存放密钥_第9张图片

此时jni下会出现libs和obj两个子文件夹。将自文件夹中的.so文件复制到jinLibs文件夹下对应的子文件夹中。

然后就可以使用

JniUtil.getSslPwd()调用动态库中的方法

 

你可能感兴趣的:(安卓生成c语言动态库.so文件存放密钥)