android jni 将BYTE* 和 jbyteArray 之间的转换
生活随笔
收集整理的這篇文章主要介紹了
android jni 将BYTE* 和 jbyteArray 之间的转换
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
今天,簡(jiǎn)單講講如何在jni中將
今天,簡(jiǎn)單講講如何在jni中將
BYTE* 轉(zhuǎn)成 jbyteArray。
這個(gè)是我在做jni時(shí)碰到的問(wèn)題。因?yàn)閏傳回的值是BYTE*,而返回給java代碼是byte[],對(duì)應(yīng)的jni的數(shù)據(jù)必須是jbyteArray,所以需要轉(zhuǎn)換。在網(wǎng)上搜索了資料,終于是解決了這個(gè)問(wèn)題。
C++中的BYTE[]轉(zhuǎn)jbyteArray//nOutSize是BYTE數(shù)組的長(zhǎng)度 BYTE pData[]jbyte *by = (jbyte*)pData;jbyteArray jarray = env->NewByteArray(nOutSize);env->SetByteArrayRegin(jarray, 0, nOutSize, by);
這個(gè)將C++中的BYTE[]轉(zhuǎn)jbyteArray主要是先用jbyte *強(qiáng)制jbyteArray,然后調(diào)用SetByteArrayRegin將jbyte *的數(shù)據(jù)拷貝到新建的jbyteArray、
這個(gè)將jbyteArray 轉(zhuǎn) c++中的BYTE[]主要是獲取jbytearray 數(shù)據(jù)后直接強(qiáng)制為BYTE*。
android jni 將BYTE* 和 jbyteArray 之間的轉(zhuǎn)換就講完了。
就這么簡(jiǎn)單。
總結(jié)
以上是生活随笔為你收集整理的android jni 将BYTE* 和 jbyteArray 之间的转换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: android Set的遍历
- 下一篇: android 进制转换