今天,简单讲讲如何在jni中将



BYTE* 转成 jbyteArray。

这个是我在做jni时碰到的问题。因为c传回的值是BYTE*,而返回给java代码是byte[],对应的jni的数据必须是jbyteArray,所以需要转换。在网上搜索了资料,终于是解决了这个问题。

C++中的BYTE[]转jbyteArray//nOutSize是BYTE数组的长度 BYTE pData[]jbyte *by = (jbyte*)pData;jbyteArray jarray = env->NewByteArray(nOutSize);env->SetByteArrayRegin(jarray, 0, nOutSize, by);

这个将C++中的BYTE[]转jbyteArray主要是先用jbyte *强制jbyteArray,然后调用SetByteArrayRegin将jbyte *的数据拷贝到新建的jbyteArray、

jbyteArray 转 c++中的BYTE[]//jbytearray strInjbyte * olddata = (jbyte*)env->GetByteArrayElements(strIn, 0);jsize  oldsize = env->GetArrayLength(strIn);BYTE* bytearr = (BYTE*)olddata;int len = (int)oldsize;

这个将jbyteArray 转 c++中的BYTE[]主要是获取jbytearray 数据后直接强制为BYTE*。

android jni 将BYTE* 和 jbyteArray 之间的转换就讲完了。

就这么简单。

android jni 将BYTE* 和 jbyteArray 之间的转换相关推荐

  1. java中byte,String,InputStream之间的转换

    Java代码   import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.I ...

  2. 序列化之对象,字符串,byte数组,XML之间的转换(一)

    工作一年多了,越来越感到自己不能这样一直下去,在最好的青春里面却已经死了.被时间消磨了意志,被工作杀死了精神.我想,我只要活着,我就要去不断的要求自己,不断的去追求更高的山峰. 放眼四周,有趣的灵魂越 ...

  3. C# 对象、文件与二进制串(byte数组)之间的转换

    1.关于本文 在使用C#下的TCP(类TcpClient).UDP(类UdpClient)协议传输信息时,都需要将信息转换为byte类型的数组进行发送.本文实现了两种object与byte数组的转换和 ...

  4. C# Object与二进制串(byte数组)之间的转换

    话不多说,看连接 这里是连接 [1]: 转换一. [2]: 转换二.

  5. android jni (jni_onload方式)

    一.简述 JNI(Java Native Interface)Java本地接口,是为方便java调用C或者C++等本地代码所封装的一层接口.由于Java的跨平台性导致本地交互能力不好,一些和操作系统相 ...

  6. android图片转换为二进制流,Android图片二进制与Bitmap、Drawable之间的转换

    Android图片二进制与Bitmap.Drawable之间的转换 Java代码 public byte[] getBitmapByte(Bitmap bitmap){ ByteArrayOutput ...

  7. java byte数组转化为流_java中字节数组和字符串、IO流和字节数组之间的转换

    在实际开发中经常会碰到乱码问题: 首先查看系统支持的编码方式,默认的编码方式 //检查java支持的编码 System.out.println(Charset.availableCharsets(). ...

  8. java byte转16进制_Java 十六进制(Hex)与byte数组之间的转换

    一.十六进制(Hex)与字节(byte)的概念 十六进制(Hex):计算机中数据的一种表示方法,它由0-9,A-F组成,字母不区分大小写.与10进制的对应关系是:0-9对应0-9:A-F对应10-15 ...

  9. Android JNI学习(五)——Java与Native之间如何实现相互调用

    本章将讲述Java与Native之间如何实现相互调用.我将围绕围绕如下三点来讲解. #mermaid-svg-qeVnGlVrLWrB5ryX .label{font-family:'trebuche ...

最新文章

  1. 扩增子和宏基因组数据分析流程和可视化方案—刘永鑫(南京,2020年11月27日)
  2. 北京联通限制上传到电信网络服务器
  3. Mysql报错时区错误invalid timezone
  4. wpf绑定之格式化日期
  5. weak和assign的区别
  6. nginx平滑升级至最新版的nginx-1.9.5
  7. 多元统计分析最短距离法_多元统计分析(11个常见的多变量分析方法)
  8. git push或git pull等其他git命令 出现unable to access ‘https://gitee.com/你的git仓库地址)清除网络代理
  9. Excel复制的数据到文本文件里面有 双引号
  10. UFR II、PCL、PostScript打印机驱动区别
  11. 手机扫码登陆网页的原理实现
  12. 【delphi】各大平台短信功能控件实现(含源代码、演示程序、帮助)
  13. 惊闻母校徐兵老师英年早逝
  14. oracle 查看回收站空间,ORACLE 回收站当前状态查询整理
  15. 网络系统设计过程中,物理网络设计阶段的任务是(70)。【答案】A
  16. Zabbix5系列-监控华为、H3C交换机(snmpv2c/snmpv3/snmptrap) (二)
  17. Cannot assign requested address错误解决
  18. 【English】十一月英语总结
  19. PyQt5 第二章 窗口布局管理(二)
  20. 献给初学iOS的小盆友们——微博app项目开发之七第一次获取微博数据

热门文章

  1. Vue axios发送Http请求
  2. 【EF学习笔记09】----------使用 EntityState 枚举标记实体状态,实现增删改查
  3. oc-14-对象方法调用类方法
  4. [整理]Git使用文章整理
  5. 关于 python 的注释
  6. (19) 转载: 寻找丑数
  7. 对 Oracle 备份与恢复 的补充说明
  8. JQuery 动画卷页 -- 返回顶部 动画特效(兼容Chrome)
  9. SQL 技巧-ORACLE
  10. VS2005发布网站问题及aspnet_merge.exe”已退出,代码为 1的错误