美文网首页
NDK生成os保存重要数据

NDK生成os保存重要数据

作者: 人世看客 | 来源:发表于2022-01-12 11:00 被阅读0次

12.NDK生成os文件保存密码:

  1. 先创建java文件
public class JniUtil {
    static {
        System.loadLibrary("JniUtil");
    }

    public native String getSslPwd();
}

2.build.gradle中配置

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId "com.xiaoxing.socket"
        minSdkVersion 23
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

        ndk {
            moduleName "JniUtil"          //生成的so名字
            abiFilters "armeabi", "armeabi-v7a", "x86" ,'arm64-v8a'//输出指定三种abi体系结构下的so库
        }

        sourceSets.main {
            jni.srcDirs = []
            jniLibs.srcDir "src/main/libs"
        }
//
    }

3.生成class文件,make project (快捷键ctrl+F9),在build文件中找到文件位置执行下面命令,需要配置jdk环境

javah -d jni -classpath  绝对路劲 com.zyhd.drinker.utils.JniUtil

4.执行上面命令,会生成一个.h文件,生成位置会在执行命令当前位置jni下面

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_xiaoxing_socket_util_JniUtil */

#ifndef _Included_com_xiaoxing_socket_util_JniUtil
#define _Included_com_xiaoxing_socket_util_JniUtil
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     com_xiaoxing_socket_util_JniUtil
 * Method:    getSslPwd
 * Signature: ()Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_com_xiaoxing_socket_util_JniUtil_getSslPwd
  (JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif

5.新建一个.c文件, 名为jniutil.c, 把上一步生成的.h文件内容复制到该文件中,并实现其方法

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_zyhd_drinker_utils_JniUtil */

#ifndef _Included_com_zyhd_drinker_utils_JniUtil
#define _Included_com_zyhd_drinker_utils_JniUtil
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     com_zyhd_drinker_utils_JniUtil
 * Method:    getSslPwd
 * Signature: ()Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_com_zyhd_drinker_utils_JniUtil_getSslPwd
  (JNIEnv *env, jobject jz){
          return (*env)->NewStringUTF(env,"sdfsdf");
    };
#ifdef __cplusplus
}
#endif
#endif

6.新建两个文件放到jni下面
Android.mk 参数LOCAL_MODULE后面名称为创建java名称,LOCAL_SRC_FILES为c文件名称

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := JniUtil

LOCAL_SRC_FILES := jniutil.c

include $(BUILD_SHARED_LIBRARY)

Application.mk

APP_ABI:=all

7.执行ndk-build,这方面不太熟自行找网上,进入settings页面,找到External Tools,添加啥来着,外部命令?忘了,填写具体内容如下:


image.png

配置完成,右击,选择External Tools下面刚创建的命令,会在os文件

8.注意事项:开始前先安装NDK,不然会失败

相关文章

网友评论

      本文标题:NDK生成os保存重要数据

      本文链接:https://www.haomeiwen.com/subject/gaugzhtx.html