使用Android Studio调用C++ 代码

通过这两天的摸索,结合网上的参考资料终于把NDK JNI接口搞定了,在这做一下记录:

1.下载NDK,并且解压到相应的位置

  

 

2.配置环境变量-->系统变量

 

3.新建包含native函数的类

  

4.Make Project(Ctrl+F9)

 

5.AS->View->Tools WIndows->Terminal或者(Alt+F12)调出命令行窗口

 

6.通过命令生成.h头文件:javah -d ../jni -jni com.manboker.wb.jni.MyJni

 

7.jni目录下面新建cpp文件,并且实现函数体

 

8.jni目录下面新建Android.mk文件

  LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE :=MyJni

LOCAL_SRC_FILES := MyJni.cpp

include $(BUILD_SHARED_LIBRARY)

 

9.jni目录下面新建Application.mk文件

 APP_ABI := all

APP_OPIM :=debug

 

10.app->build.gradle 添加ndk信息

   ndk{

            moduleName"MyJni"

        }

 

11.gradle.properties添加

   android.useDeprecatedNdk=true

 

12.添加NDKAS

 

13.生成so文件,在main文件夹下面调用输入命令bdk-build


14.so文件


Android Studio使用 Java 调用 C++ 实例需要进行以下步骤: 1. 编写 C++ 代码,并将其打包成可供 Java 调用的库文件(.so 文件)。 2. 在 Java 中使用 JNI(Java Native Interface)调用 C++ 库。 下面是一个简单的示例: 1. 编写 C++ 代码并将其打包成库文件 在 C++ 中编写代码,将其打包成可供 Java 调用的库文件。以下是一个简单的示例,在 C++ 中实现一个函数,计算两个整数的和,并将其打包成库文件: ```c++ // sum.cpp #include <jni.h> extern "C" JNIEXPORT jint JNICALL Java_com_example_sum_MainActivity_sum(JNIEnv *env, jclass clazz, jint a, jint b) { return a + b; } ``` 编译 C++ 代码,并将其打包成可供 Java 调用的库文件。可以使用 Android NDK 工具链来编译 C++ 代码,并生成库文件。以下是一个简单的示例: ```shell $ cd /path/to/project $ ndk-build ``` 编译完成后,将会在项目的 libs 目录下生成库文件(.so 文件)。在本例中,生成的库文件名为 libsum.so。 2. 在 Java 中使用 JNI 调用 C++ 库 在 Java 中使用 JNI 调用 C++ 库,需要进行以下步骤: a. 加载库文件: 在 Java 中使用 System.loadLibrary() 方法加载库文件。以下是一个简单的示例: ```java static { System.loadLibrary("sum"); } ``` 在本例中,将会加载名为 libsum.so 的库文件。 b. 声明本地方法: 在 Java 中声明本地方法,即 JNI 调用 C++ 库中的函数。以下是一个简单的示例: ```java public static native int sum(int a, int b); ``` c. 实现本地方法: 在 Java 中实现本地方法,即调用 JNI 调用 C++ 库中的函数。以下是一个简单的示例: ```java public static int sum(int a, int b) { return sum(a, b); } private static native int sum(int a, int b); ``` 在本例中,调用 sum() 方法时,会调用本地方法 sum(),并最终调用 C++ 库中的 sum() 函数。 至此,完成了在 Android Studio使用 Java 调用 C++ 实例的过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wb175208

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值