Java JNI 入门篇——传递数组与修改数组
2017-05-08 18:11
399 查看
这里不在重复Java JNI 的开发过程了,不熟悉的同学请参考:Java JNI HelloWorld 直接上主要代码:
ArrayJNI.Java
arrayjni.cpp
ok!
ArrayJNI.Java
package com.example.jni; public class ArrayJNI { static { System.loadLibrary("arrayjni"); } public native byte[] process(byte[] data); public static void main(String[] args) throws Exception { byte[] srcbyte = new byte[] { 1, 2, 3 }; ArrayJNI item = new ArrayJNI(); byte[] resultbyte = item.process(srcbyte); System.out.print("(Java)result byte: "); for (int i = 0; i < resultbyte.length; i++) { System.out.printf("%d\t", 0xff & resultbyte[i]); } System.out.println(); } }
arrayjni.cpp
// arrayjni.cpp : Defines the exported functions for the DLL application. // #include "stdafx.h" #include "com_example_jni_ArrayJNI.h" #include <iostream> /* * Class: com_example_jni_ArrayJNI * Method: process * Signature: ([BII)[B */ JNIEXPORT jbyteArray JNICALL Java_com_example_jni_ArrayJNI_process (JNIEnv * env, jobject obj, jbyteArray byteArray) { jbyte* receivedbyte = env->GetByteArrayElements(byteArray, 0); jsize size = env->GetArrayLength(byteArray); printf("(C++) received byte: "); for (int i = 0; i < size; i++) { int value = (int)(receivedbyte[i] & 0xff); printf("%d\t",value); jbyte v = (~value); env->SetByteArrayRegion(byteArray, i, 1, &v); } return byteArray; }
ok!
相关文章推荐
- Java JNI 入门篇——传递数组与修改数组
- JAVA->JNI 传递字符串数组
- Java JNI入门篇——C++访问并修改Java中的变量
- JNI中通过参数来传递数组返回值(C和java间)
- Android Studio NDK 入门教程(5)--Java对象的传递与修改
- android NDK 入门之在JNI中修改java中对象的成员变量的值
- JNI Java 入门篇——传递&&接收基本数据类型
- jni中c++给java传递数组
- JNI学习笔记 C++传递结构体、String、数组对象给JavaC++传递结构体、String、数组对象给Java
- Android JNI JByteArray传递byte数组到Java
- Android JNI JByteArray传递byte数组到Java
- android JNI java与C++传递String数组(引用类型)
- Android JNI 把Java数组传递给C
- JNI基础(五)java调C,并且传递数组
- AndroidStudio下JNI开发(easy+1.0)之Java对象的传递与修改
- jni数组使用及将C的char数组传递给Java
- JNI中C和java传递数组
- Jni中C++和Java的参数传递
- Android使用JNI实现Java与C之间传递数据
- java流程控制、数组入门(J2SE入门3)