浅谈Android Studio JNI生成so库

作者:jingxian 时间:2021-09-25 21:55:11 

1.新建Android studio工程

浅谈Android Studio JNI生成so库

2.新建class:AppKey.java.主要为了保存密钥

代码块


package com...adminapp.lib.utils.jni;

/**
* Created by seven on 16/9/8.
*/

public class AppKey {

static {
   System.loadLibrary("AppKey");
 }

public static native String WechatId();

public static native String WechatSecret();

public static native String QQId();

public static native String QQKey();

}

3.编译JNI文件,生成.h文件

•1)选中整个Project,在菜单栏选中Build->Make Project

•2)查看TestJNI/app/build/intermediates/classes/debug/com…/AppKey.class

浅谈Android Studio JNI生成so库

•3)在Android studio的Terminal中进入app/build/../debug/目录下,然后执行:

javah -jni com….adminapp.lib.utils.jni.AppKey

浅谈Android Studio JNI生成so库

生成.h文件

浅谈Android Studio JNI生成so库

4.编译生成so文件

•1)在src/main目录下新建jni目录和java目录平级,用来保存生成的.h文件。将步骤3生成的com_…_adminapp_lib_utils_jni_AppKey.h文件拷贝到新建的jni目录。

•2)使用C/C++实现JNI,在jni文件夹下,创建com_…_adminapp_lib_utils_jni_AppKey.h对应的c文件:AppKey.c

•3)创建mk文件,并使用ndk-build命令生成.so动态链接库文件

在jni目录下创建Android.mk文件如下:

LOCAL_PATH :=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE :=AppKey
LOCAL_SRC_FILES=AppKey.c
include $(BUILD_SHARED_LIBRARY)
其中LOCAL_PATH:是C/C++代码所在目录,也就是我们的jni目录。
LOCAL_MODULE:是要编译的库的名称。编译器会自动在前面加上lib,在后面加上.so。
LOCAL_SRC_FILES:是要编译的C/C++文件。

在jni目录下创建Application.mk文件如下:

APP_PROJECT_PATH := $(call my-dir)
APP_MODULES := TestJNI

•4)使用ndk-build命令生成so库

浅谈Android Studio JNI生成so库

标签:android,studio,生成so
0
投稿

猜你喜欢

  • 使用spring注入枚举类型作为参数

    2023-11-23 13:25:57
  • java中Date类和Strng类的灵活转化

    2022-12-09 07:47:24
  • SpringBoot Data JPA 关联表查询的方法

    2021-08-08 13:59:23
  • 25个最好的免费Eclipse插件

    2021-09-21 10:56:24
  • Android App应用启动分析与优化

    2023-06-09 01:08:11
  • android中开启actionbar的两种方法

    2021-07-14 01:47:17
  • android仿微信通讯录搜索示例(匹配拼音,字母,索引位置)

    2023-02-22 16:18:35
  • C# 多线程更新界面的错误的解决方法

    2022-01-20 15:52:21
  • java根据网络地址保存图片的方法

    2021-09-01 18:37:02
  • java的泛型你真的了解吗

    2022-07-25 09:40:06
  • SpringMvc后台接收json数据中文乱码问题详解

    2022-12-03 00:08:58
  • Java项目中获取路径的绝对路径问题和相对路径问题

    2023-07-09 13:25:01
  • 详解Spring Security如何在权限中使用通配符

    2023-04-17 23:41:54
  • C#实现HTTP下载文件的方法

    2022-01-19 02:35:50
  • 浅谈Java堆外内存之突破JVM枷锁

    2022-10-19 19:46:50
  • Android实现手机游戏隐藏虚拟按键

    2023-01-29 02:04:55
  • C#模拟实现鼠标自动点击与消息发送功能

    2023-02-09 08:51:14
  • C# Winform中如何绘制动画示例详解

    2022-03-28 13:26:26
  • java利用easyexcel实现导入与导出功能

    2022-09-29 06:40:16
  • C# DataSet查看返回结果集的实现

    2021-10-10 09:54:31
  • asp之家 软件编程 m.aspxhome.com