博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android java 数组转字符串_android112 jni 把java的字符串转换成c的字符串,数组处理...
阅读量:7069 次
发布时间:2019-06-28

本文共 1106 字,大约阅读时间需要 3 分钟。

package com.itheima.array;

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.view.View;public classMainActivity extends Activity {static{

System.loadLibrary("hello");

}

@Overrideprotected voidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}int[] arr = {1,2,3,4,5};public voidclick(View v){

arrayEncode(arr);for (int i : arr) {//上面已经对数组内存进行了改变,所以此处是修改后的数组

System.out.println(i);

}

}public native void arrayEncode(int[] arr);

}/*hello.c文件:

#include

JNIEXPORT void JNICALL Java_com_itheima_array_MainActivity_arrayEncode

(JNIEnv * env, jobject obj, jintArray jintarr){//jintArray是整型数组,jni中所有的数组都是指针类型

//拿到整型数组的长度以及第0个元素的地址

//jsize (*GetArrayLength)(JNIEnv*, jarray);jsize就是int类型(jni.h文件都有定义)

int length = (*env)->GetArrayLength(env, jintarr);

//jint* (*GetIntArrayElements)(JNIEnv*, jintArray, jboolean*);jint就是int类型

int* arrp = (*env)->GetIntArrayElements(env, jintarr, 0);//得到第0个元素的地址

int i;

for(i = 0;i < length; i++){//数组是连续的内存空间,有了数组长度和数组第0个元素地址就相当于拿到了所有数组。

*(arrp + i) += 10;//每个元素加10

}

}*/

转载地址:http://fvqll.baihongyu.com/

你可能感兴趣的文章
linux php 7 安装
查看>>
二、在java中,对象是如何访问的呢? --- 对象的访问
查看>>
C#进阶之路(三):深拷贝和浅拷贝
查看>>
python基础一 day14 生成器函数进阶(1)
查看>>
springmvc的系统学习之配置方式
查看>>
js取整数、取余数的方法
查看>>
intellij 常用设置
查看>>
Redis源代码分析
查看>>
JDBC工作模块
查看>>
poj3265
查看>>
poj3216
查看>>
bzoj1132
查看>>
Seekbar滑块上带文字
查看>>
三种方式解决你的js加载乱码
查看>>
web前端----JavaScript对象
查看>>
一起学Android之Http访问
查看>>
mybaties+mysql:插入数据,返回自增长的id
查看>>
azkaben任务调度器
查看>>
L102
查看>>
New Concept English Two 7
查看>>