Android NDK开发之生成动态库.so文件

配置好NDK开发的基本环境,安装好NDK

在Android  studio的工具栏点击SDK Manager的图标,去安装NDK。

接下来就是介绍下如何生成.so文件了,用一个例子来说明。

具体步骤:

1、新建一个Project,例子里是KL,在KL里新建一个Module,如本例中的Demo,新建一个Java文件ZjrT.java,如下图所示:

ZjrT中的static代码块中加载了一个library:zjr,libname的名字可以随意取,这个也就是最后生成的so文件的名字,系统会在前面默认加上lib,如本例中,最后生成的是libzjr.so.

2、生成jni头文件,在这我们可以配置一个宏命令,方便之后使用

File--->Setting--->Tools--->External Tools,点击“+”,弹出Edit Tool,按下图所示进行配置

Tools Setting:

Programme:javah

Arguments:-v -jni -d $ModuleFileDir$/src/main/jni $FileClass$

Working directory:$SourcepathEntry$

在ZjrT.java文件如下操作;

在Module中会自动生成jni文件夹,下面自动生成了一个kl_sensor_ZjrT.h文件。

3、在jni目录下新建.cpp、.mk文件

sou.cpp代码:

#include "jni.h"
#include "kl_sensor_ZjrT.h"

JNIEXPORT jstring JNICALL Java_kl_sensor_ZjrT_getN
  (JNIEnv * env, jclass jz){
    return env->NewStringUTF("ceshi");
}

Android.mk文件:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := zjr
LOCAL_SRC_FILES := sou.cpp
include $(BUILD_SHARED_LIBRARY)

Application文件:

APP_ABI := all
APP_PLATFORM := android-15

APP_ABI := all 可以用下面替换:

APP_ABI := armeabi armeabi-v7a x86 arm64-v8a mips mips64 x86_64

可选择性生成指令集下的so文件。

4、在Terminal中进入到jni,然后输入ndk-build,按回车Enter,即可

编译完成后,在Module中生成libs文件夹,包含各个指令集下的libzjr.so文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值