Android 使用jni解析数组
2016-06-07 22:55
369 查看
1、创建页面
2、转入到本工程的src目录下 使用命令
javah com.android.imooc.jni.ArrayActivity
3、生成一个新的文件打开
拷贝里面的方法到jni目录下的方法
到hello.c文件里
4、对上面的方法进行编写
首先必须把java里的整形数组转换成C语言里的整形数组,即拿到长度与首地址就可
5、运行得到结果:
06-06 18:37:44.679: I/System.out(5111): 11
06-06 18:37:44.679: I/System.out(5111): 12
06-06 18:37:44.679: I/System.out(5111): 13
06-06 18:37:44.679: I/System.out(5111): 14
06-06 18:37:44.683: I/System.out(5111): 15
/** * @描述 数组传递 * @项目名称 App_imooc * @包名 com.android.imooc.jni * @类名 ArrayActivity * @author chenlin * @date 2014年6月7日 下午10:26:02 * @version 1.0 */ public class ArrayActivity extends Activity{ private int[] arr = {1, 2, 3, 4, 5}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_jni_array); } public void sendArray(View view){ arrayEncode(arr); for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } public native void arrayEncode(int[] arr); }
2、转入到本工程的src目录下 使用命令
javah com.android.imooc.jni.ArrayActivity
3、生成一个新的文件打开
拷贝里面的方法到jni目录下的方法
JNIEXPORT void JNICALL Java_com_android_imooc_jni_ArrayActivity_arrayEncode (JNIEnv *, jobject, jintArray);
到hello.c文件里
4、对上面的方法进行编写
首先必须把java里的整形数组转换成C语言里的整形数组,即拿到长度与首地址就可
JNIEXPORT void JNICALL Java_com_android_imooc_jni_ArrayActivity_arrayEncode (JNIEnv * env , jobject obj, jintArray arr){ //获得长度 int len = ( *env)->GetArrayLength(env, arr); //jint* (*GetIntArrayElements)(JNIEnv*, jintArray, jboolean*); int* p = (*env)->GetIntArrayElements(env, arr, 0); int i; for(i = 0; i < len ; i ++){ *(p + i) += 10; } }
5、运行得到结果:
06-06 18:37:44.679: I/System.out(5111): 11
06-06 18:37:44.679: I/System.out(5111): 12
06-06 18:37:44.679: I/System.out(5111): 13
06-06 18:37:44.679: I/System.out(5111): 14
06-06 18:37:44.683: I/System.out(5111): 15
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题