Android基于JNI的Java与C++互调

这篇具有很好参考价值的文章主要介绍了Android基于JNI的Java与C++互调。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

java调用C++:

#include <jni.h>

//导出c函数格式

extern "C" JNIEXPORT

//供JNI调用 

JNICALL

函数名格式 Java_包名_类名_函数名(包名.替换为_)

Java_com_example_getapplist_MainActivity_stringFromJNI

   包名:com_example_getapplist   类名:MainActivity.      函数名:stringFromJNI

#include <jni.h>
#include <string>
//导出c函数格式
extern "C" JNIEXPORT jstring
//供JNI调用
JNICALL
//函数名格式  Java_包名_类名_函数名(包名.替换为_)
Java_com_example_getapplist_MainActivity_stringFromJNI(
        JNIEnv *env, //JNI环境
        jobject //类对象
        ) {
    //string对象
    std::string hello = "Hello from C++";
    //string转换为jstring
    return env->NewStringUTF(hello.c_str());
}

C++ Jni  CMakeList.txt  文章来源地址https://www.toymoban.com/news/detail-687645.html

cmake_minimum_required(VERSION 3.22.1)
project("getapplist")
add_library(${CMAKE_PROJECT_NAME} 

到了这里,关于Android基于JNI的Java与C++互调的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android Java代码与JNI交互 JNI方法Java类字段 (六)

    🔥 Android Studio 版本 🔥    🔥 Java 基础类型数据对应 Native层的字母 🔥  通过 jni 查找java某个类中相应字段对应的数据类型 , 需要使用到 jni 中的 GetFieldID() 函数 🔥 Java 引用类型数据对应 Native层字符串 🔥   🔥 创建 JNIAccessField 文件 🔥 🔥 配置动态库名称 🔥  🔥 生成

    2024年02月16日
    浏览(30)
  • Android Java代码与JNI交互 JNI访问Java构造方法(九)

    🔥 Android Studio 版本 🔥    🔥 创建包含JNI相关函数类 JNIConstructorClass.java 🔥  🔥 配置动态库名称 🔥   🔥 生成可关联的库链接 🔥  为了让Java能够调用 constructor-class-lib 库中的函数,您需要使用 CMake 构建脚本中的 target_link_libraries() 命令来关联constructor-class-lib 库  🔥

    2024年02月15日
    浏览(30)
  • Android Java代码与JNI交互 JNI访问Java类方法 (七)

    🔥 Android Studio 版本 🔥    🔥 创建包含JNI的类 JNIAccessMethod.java 🔥  🔥 Java方法对应Native层方法名称 🔥 🔥 配置动态库名称 🔥  🔥 生成可关联的库链接 🔥  为了让Java能够调用 access-method-lib 库中的函数,您需要使用 CMake 构建脚本中的 target_link_libraries() 命令来关联 

    2024年02月16日
    浏览(26)
  • Android Java代码与JNI交互 JNI子线程访问Java方法 (八)

    🔥 Android Studio 版本 🔥   🔥 创建包含JNI相关函数类 JNIInvokeMethod.java 🔥  🔥 配置动态库名称 🔥  🔥 生成可关联的库链接 🔥  为了让Java能够调用 invoke-method-lib 库中的函数,您需要使用 CMake 构建脚本中的 target_link_libraries() 命令来关联 invoke-method-lib 库  🔥 提供给N

    2024年02月16日
    浏览(36)
  • Android:JNI实战,理论详解、Java与Jni数据调用

    上一篇博文《Android:JNI实战,加载三方库、编译C/C++》讲解了如何搭建一个可以加载和链接第三方库、编译 C/C++ 文件的 Jni Demo App。 这篇博文在这个 Jni Demo App 的基础上,从实战出发详细讲解  Jni  开发语法。 接下来,先用一小节将 Jni 开发比较重要的理论知识点过一下,然

    2024年01月23日
    浏览(34)
  • Android Java代码与JNI交互 引用类型转换(五)

    🔥 Android Studio 版本 🔥   🔥 Java中基础数据类型对应Native的数据类型 🔥 🔥 Java中引用数据类型 对应Native中的数据类型 🔥   🔥 创建  JNIReferenceType 🔥 🔥 生成可关联的库链接 🔥 为了让Java能够调用reference-type-lib库中的函数,您需要使用 CMake 构建脚本中的 target_link_l

    2024年02月13日
    浏览(37)
  • Android Java代码与JNI交互字符串转换(四)

    🔥 Android Studio 版本 🔥  🔥 创建JNIString.java 🔥  🔥 Native层实现 JNI的callNativeString函数 🔥 🔥 配置动态库名称 🔥  编辑CMakeLists.txt 根据j ni/jni_string.cpp 配置动态库名称  🔥 生成可关联的库链接 🔥 为了让Java能够调用 string-lib库中的函数,您需要使用 CMake 构建脚本中的 

    2024年02月13日
    浏览(37)
  • Android Java代码与JNI交互基础数据类型转换(三)

    🔥 Android Studio 版本 🔥  🔥 基础类型数据的转换 🔥 定义传递基础数据类型到Native的JNI接口函数 Native层创建callNativeInt 提供给Java调用 CMakeLists.txt 文件下配置动态库名称  添加 target_link_libraries 配置 Java调用Native层函数   运行打印日志 Java调用Native分别打印基础类型数据  下

    2024年02月13日
    浏览(29)
  • C++通过JNI调用JAVA方法返回ArrayList对象

    运行效果:   JAVA实现: 获取系统已安装应用列表并返回ListString对象 C++ JNI实现:

    2024年02月11日
    浏览(31)
  • Android蓝牙使能流程图(Android Bluetooth enable) -- java & jni层

    在介绍Android enable流程之前,我们首先来看下Android的流程图 以上图示是android8以上的,主要跟Android8之前的架构在于Bluetooth stack跟vendor层之间增加一层HIDL,主要是抽象硬件层的作用 OK,回归主题,我们来看下Android的enable流程,首先上一张架构图 另外声明下:我们做了一些列

    2024年02月09日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包