12.NDK生成os文件保存密码:
- 先创建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,添加啥来着,外部命令?忘了,填写具体内容如下:

配置完成,右击,选择External Tools下面刚创建的命令,会在os文件
8.注意事项:开始前先安装NDK,不然会失败
网友评论