Android之ndk中JNIENV env->NewStringUTF (*env)->NewStringUTF


JNIEnv是指向可用JNI函数表的接口指针,原生代码通过JNIEnv接口指针提供的各种函数来使用虚拟机的功能。JNIEnv是一个指向线程-局部数据的指针,而线程-局部数据中包含指向线程表的指针。实现原生方法的函数将JNIEnv接口指针作为它们的第一个参数。

原生代码是C以及原生代码是C++其调用JNI函数的语法不同,C代码中,JNIEnv是指向JNINativeInterface结构的指针,为了访问任何一个JNI函数,该指针需要首先被解引用。因为C代码中的JNI函数不了解当前的JNI环境,JNIEnv实例应该作为第一个参数传递给每一个JNI函数调用者。

 

 

 

jstring Java_com_example_jni_MainActivity_stringFromC(JNIEnv* env,jobject thiz){return (*env)->NewStringUTF(env,"hello, I am from C");
}

 




然而,在C++代码中,JNIEnv实际上是C++类实例,JNI函数以成员函数形式存在,因为JNI方法已经访问了当前的JNI环境,因此JNI方法调用不要求JNIEnv实例作参数,在C++中,完成同样的功能代码应该是下面这样:

 

 

 

 

extern "C" jstring Java_com_example_jni_MainActivity_stringFromCpp(JNIEnv* env,jobject thiz){return env->NewStringUTF("hello, I am from C++");
}

 



 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/291092.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最佳新秀Java(22)——再次了解泛型

仿制药Java SE 1.5新功能。通用自然是参数化类型。即操作数据类型被指定为一个参数。这样的参数类型可以在课堂上使用、创建的接口和方法,他们被称为通用类、、泛型方法。Java语言引入泛型的优点是安全简单。规则和限制1、泛型的类型參数仅仅能是类类型(…

如何编译 dotnet/aspnetcore 源代码

前言最近,准备为 dotnet/aspnetcore 修改 issue,但是在 clone 代码后,发现要编译成功,远没有想象中那么容易。因此,将整个过程进行记录,以供大家参考。以下操作都是在 Windows 10 下完成。0.环境准备详见官…

查看Linux进程CPU过高具体的线程堆栈(不中断程序)

转自:http://blog.csdn.net/mergerly/article/details/47731305 1、TOP命令,找到占用CPU最高的进程 [plain] view plaincopy $ top top - 20:11:45 up 850 days, 1:18, 3 users, load average: 1.04, 1.01, 0.99 Tasks: 61 total, 1 running, …

linux 编译工具链,Linux工具链for TKStudio下载_Linux工具链for TKStudio官方下载-太平洋下载中心...

Linux工具链for TKStudio是一款支持TKStudio IDE集成开发环境的辅助LINUX交叉编译工具链软件,交叉编译就是跨架构编译,编译出来的程序不能在本机执行(当然有例外情况)。所以这个时候就需要交叉编译工具链。译工具链一般最简化的为 binutils gcc glibc …

pom.xml配置详解

http://blog.csdn.net/uohzoaix/article/details/7035307转载于:https://www.cnblogs.com/friends-wf/p/3829580.html

Android之在Activity中动态得到Adapter类中数据

1、问题 Activity中动态得到Adapter数据2、解决办法 在Adapter中写入接口Class Adapter {Interface A {void onClick(int a, int b);}A a;public void setListen (A a) {this.a a;}public void A (int a, int b) {if (a ! null ) {a.onClick(a, b);}}} class MainActivity ex…

Convolutional Neural Networks for Visual Recognition 1

Introduction 这是斯坦福计算机视觉大牛李菲菲最新开设的一门关于deep learning在计算机视觉领域的相关应用的课程。这个课程重点介绍了deep learning里的一种比较流行的模型:Convolutional Neural Networks,简称CNN,主要利用CNN来做visual r…

记一次 .NET 某供应链WEB网站 CPU 爆高事故分析

一:背景 1. 讲故事年前有位朋友加微信求助,说他的程序出现了偶发性CPU爆高,寻求如何解决,截图如下:我建议朋友用 procdump 在 cpu 高的时候连抓两个dump,这样分析起来比较稳健,朋友也如期的成功…

html5做的太阳系

效果图&#xff1a; 源代码&#xff1a; <!DOCTYPE html><html><head><meta charset"UTF-8"> <title></title></head><body><canvas id"canvas" width"1000" height"1000" style&…

html中#include file的使用方法

有两个文件a.htm和b.htm&#xff0c;在同一文件夹下a.htm内容例如以下 <!-- #include file"b.htm" --> b.htm内容例如以下 今天&#xff1a;雨 31 ℃&#xff5e;26 ℃ <br />明天&#xff1a;雷阵雨 33 ℃&#xff5e;27 ℃ 直接在浏览器中打开a&#…

Android之第一次不显示EditText光标

1、问题 光标会默认显示在第一个EditText框中&#xff0c;如果不想显示光标&#xff0c;且也不想把该光标移动到下一个EditText框。2、解决办法 在该 EditText之前增加一个不可见的LinearLayout<LinearLayout android:focusable"true"android:focusableInTouchMod…

读取bmp图片数据

1 public void getBMPImage(String source) throws Exception {2 3 clearNData(); //清除数据保存区4 FileInputStream fs null;5 6 try {7 fs new FileInputStream(source);8 int bfLen 14;9 …

Windows 11 任务管理器重磅升级!界面迎来全新设计,十年来首次大改!

面向 Dev 频道的 Windows 预览体验成员&#xff0c;微软近日发布了 Windows 11 预览版 Build 22557。在此版本中&#xff0c;任务管理器迎来了全新的设计&#xff0c;这是其自 Windows 8 以来的首次变更&#xff0c; 也是任务管理器十年来最大的一次升级。史诗级更新&#xff0…

modbus调试工具 linux,linux libmodbus的移植

1.前言Modbus是一个工业通信系统&#xff0c;由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。2.移植步骤第一&#xff0c;进入libmodbus目录下&#xff0c;在交叉编译器是最好…

Android之用 ExpandableListView使用解析(三级列表的实现)

&#xfeff;&#xfeff;Android之用 ExpandableListView使用解析&#xff08;三级列表的实现&#xff09; 下载地址如下&#xff1a;http://download.csdn.net/download/u011068702/9839848

微博自媒体,一个新的生态

昨日&#xff0c;微博、UC和360&#xff0c;三方宣布将联合打造自媒体平台&#xff0c;这是继微信公众平台、搜狐新闻客户端、百度百家、今日头条之后的又一大自媒体平台。自媒体平台之争正愈演愈烈&#xff0c;而这对自媒体人和读者来说都算是好事。为何巨头们钟爱自媒体起初微…

开发者说PaddleOCR的.NET封装与应用部署

本项目是一个基于PaddleOCR的C代码修改并封装的.NET的工具类库。包含文本识别、文本检测、基于文本检测结果的统计分析的表格识别功能&#xff0c;同时针对小图识别不准的情况下&#xff0c;做了优化&#xff0c;提高识别准确率。项目包含总模型仅8.6M的超轻量级中文OCR&#x…

转载 雨松mono Unity获取游戏对象详解(来自我的长微博)

Unity获取游戏对象详解&#xff08;来自我的长微博&#xff09; 转载 自 雨松mono 本文固定链接: http://www.xuanyusong.com/archives/2768转载请注明: 雨松MOMO 2014年06月16日 于 雨松MOMO程序研究院 发表我觉得Unity里面的Transform 和 GameObject就像两个双胞胎兄弟一样&a…

ps之解决eps图片不能保存为png格式问题

1、问题 eps图片不能保存为png问题&#xff0c;日了狗 2、解决办法 原因&#xff1a; 在cmyk模式下&#xff0c;png不支持印刷输出的CMYK模式 在lab模式下&#xff0c;png或jpg不能存储LAB模式的色彩信息 将图片保存为png方法步骤&#xff1a; 图像——模式——选择RGB模式 3、…

linux怎么看是否安装kde桌面,ubuntu 7上安装kde桌面

开始使用Red Hat是因为一次服务器配置的需要&#xff0c;学院的精品课程建设需要自己建立一个支持JSP/Servlet 的服务器&#xff0c;由于以前做开发一直在windows平台下开发很少在linux下进行开发&#xff0c;最多也就是在linux 下进行测试。不过Red Hat的体积确实不敢恭维&am…