使用Android studio进行NDK开发

这篇博客记录了作者初次学习使用Android Studio进行NDK开发的过程。首先,介绍了如何编写和配置native代码,包括声明native方法,使用javah生成.h文件,以及在jni目录下实现c/c++文件。接着,讨论了在app的gradle文件中配置NDK的步骤,包括添加gradle.properties的配置,构建项目后生成NDK目录。虽然文中并未深入探讨NDK配置,但提供了基础的入门指南,期待读者的补充。

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

第一次学习使用ndk,记录下

1. 编写native代码

(1)在需要调用native方法的类中,声明native方法

public class JniKit {
    public native static String helloWorld();

    static {
        Log.e("JniKit", "JniKit 第一次加载库");
        System.loadLibrary("JniDemo");//加载so库
    }
}

(2)使用javah命令生产对应的.h文件
①cd 到Java代码的目录下
②使用命令生成对应的文件,命令为 javah -jni 完整包名.类名
这里写图片描述

生成对应的h文件
这里写图片描述

(3)新建一个jni的文件夹,主要存放c/c++文件
这里写图片描述

(4)新建一个c/cpp文件实现native方法
这里写图片描述

#include "com_sunxuedian_ndk_test_jni_JniKit.h"

JNIEXPORT jstring JNICALL Java_com_sunxuedian_ndk_1test_jni_JniKit_helloWorld(JNIEnv * env, jobject object){
    return (*env)->NewStringUTF(env, "NDK --》 HelloWorld!");
}

2. 在app的gradle文件中配置ndk

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.0"
    defaultConfig {
        applicationId "com.sunxuedian.ndk_test"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

        ndk{
            moduleName "JniDemo" //设置生成的文件名
            ldLibs "log","z","m"
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

}

需要在gradle.properties文件中添加一个配置

#要使用ndk进行编译,需要添加这个配置
android.useDeprecatedNdk=true

然后build构建项目,在app/build目录下会生成对应的ndk目录,如图所示

这里写图片描述

这样就OK啦,你就可以加载so文件,然后使用native方法去使用jni接口调用。

当然,这里对ndk的配置没有细讲,因为我也是第一次学习ndk,所以后面再来补充,希望大家能在留意区帮我补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值