Android JNI编译SO库完整demo实现高斯模糊效果

本文介绍了如何使用Android Studio和JNI编译一个高斯模糊的SO库。通过创建依赖库模块,配置NDK路径,编写C/C++代码,生成头文件,编写Android.mk和Application.mk,编译SO库,然后将库文件引入项目并配置依赖,实现了在Java层调用C/C++代码进行高斯模糊处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很久没用玩jni ndk编译so库了,为了防止手生就用最近需要实现的一个高斯模糊算法类练手。当然这个算法不是我实现的,我只是把这个算法C代码编译成了一个so库,因为C执行效率比java更高,作为这个吃CPU的算法很适合做成SO文件。

这里不再介绍JNI和NDK了,我要说的重点是一个SO库从编译到使用的这个过程。

上面图片可以清除看到这个SO库的生成和java层代码通过KJNI环境调用C/C++代码的过程。

我是用android studio编译的,因为SO都是一个库并且需要对应的java层加载库文件和申明方法接口所以我们可以直接在工程里面新建一个依赖库模块,下面开始讲解完成步骤:

 

(1)新建一个依赖库根据需要填写包名

(2)配置编译环境

  • 在依赖库项目中找到local.properties文件添加ndk工具位置。

ndk.dir=/home/zhuxingchong/Android/Sdk/ndk-bundle

ndk位置file->project setting可以在下面找到

  • 为了兼容低版本ndk在依赖库gradle.properties文件中添加

android.useDepreCateNdk=true

依赖库build.gradle文件中添加ndk编译模块和so文件编译mk文件

apply plugin: 'com.android.library'

android {
    compileSdkVersion 28

    defaultConfig {
        minSdkVersion 23
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.suppo
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值