android使用JNI调用C,C++

简介: 版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/36190963 android环境下cdt的安装和NDK的配置也就不说了,有很多这样的博客文章进行讲解,现在我要说的就是通过JNI来调用C函数和C++函数。
版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/36190963

android环境下cdt的安装和NDK的配置也就不说了,有很多这样的博客文章进行讲解,现在我要说的就是通过JNI来调用C函数和C++函数。

首先,新建普通的android程序。我们姑且命名为JNITest

新建完成之后,即为普通的android项目

现在就开始我们的JNI之旅:

(一)、JNI调用C函数

1:在项目目录下新建一个jni文件夹如图

2:在jni文件夹下新建一个.c文件,姑且命名为hello.c

3:键入以下代码(后面会有讲解)

#include <jni.h>

jstring Java_com_example_jnitest_MainActivity_HelloJni(JNIEnv *env,jobject obj)

{

  return (*env)->NewStringUTF(env,"Hello World!!");

}


备注:

(1)、头文件  #include <jni.h>

头文件位置定义在 android-ndk-r9c\platforms\android-5\arch-arm\usr\include目录下

含有以下方法:

jstring     (*NewString)(JNIEnv*, const jchar*, jsize);

jsize       (*GetStringLength)(JNIEnv*, jstring);

const jchar* (*GetStringChars)(JNIEnv*, jstring, jboolean*);

void        (*ReleaseStringChars)(JNIEnv*, jstring, const jchar*);

jstring     (*NewStringUTF)(JNIEnv*, const char*);

jsize       (*GetStringUTFLength)(JNIEnv*, jstring);

(由于文字限制,下一篇接着讲解)

目录
相关文章
|
6月前
|
Android开发
Android JNI与CAN通信遇到的问题总结
Android JNI与CAN通信遇到的问题总结
225 1
|
3月前
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
239 1
|
5月前
|
Java API C++
Java JNI开发时常用数据类型与C++中数据类型转换
Java JNI开发时常用数据类型与C++中数据类型转换
211 0
|
2月前
|
Java Android开发 C++
🚀Android NDK开发实战!Java与C++混合编程,打造极致性能体验!📊
在Android应用开发中,追求卓越性能是不变的主题。本文介绍如何利用Android NDK(Native Development Kit)结合Java与C++进行混合编程,提升应用性能。从环境搭建到JNI接口设计,再到实战示例,全面展示NDK的优势与应用技巧,助你打造高性能应用。通过具体案例,如计算斐波那契数列,详细讲解Java与C++的协作流程,帮助开发者掌握NDK开发精髓,实现高效计算与硬件交互。
132 1
|
4月前
|
Java Android开发 C++
🚀Android NDK开发实战!Java与C++混合编程,打造极致性能体验!📊
【7月更文挑战第28天】在 Android 开发中, NDK 让 Java 与 C++ 混合编程成为可能, 从而提升应用性能。**为何选 NDK?** C++ 在执行效率与内存管理上优于 Java, 特别适合高性能需求场景。**环境搭建** 需 Android Studio 和 NDK, 工具如 CMake。**JNI** 构建 Java-C++ 交互, 通过声明 `native` 方法并在 C++ 中实现。**实战** 示例: 使用 C++ 计算斐波那契数列以提高效率。**总结** 混合编程增强性能, 但增加复杂性, 使用前需谨慎评估。
140 4
|
3月前
|
JSON Android开发 C++
Android c++ core guideline checker 应用
Android c++ core guideline checker 应用
|
3月前
|
JSON Android开发 数据格式
Android c++ core guideline checker 应用问题之JSON compilation database的定义如何解决
Android c++ core guideline checker 应用问题之JSON compilation database的定义如何解决
|
3月前
|
IDE 开发工具 Android开发
Android c++ core guideline checker 应用问题之clang-tidy 检查后发现的问题如何解决
Android c++ core guideline checker 应用问题之clang-tidy 检查后发现的问题如何解决
|
3月前
|
算法 Java Linux
Intellij Java JNI 调用 C++
Intellij Java JNI 调用 C++
39 0
|
6月前
|
Java Android开发
Android JNI 调用
Android JNI 调用
34 1