前言
正文
public class Hello { static { System.loadLibrary("Hello"); } // JNI中对数组排序 public static native int[] sortInt(int [] buffer); // JNI创建数组 public static native int [] newIntArray(); }
还在在之前的基础改,这里只附上部分代码
JNINativeMethod method_table[] = { {"sortInt", "([I)[I", (void *) native_sort_int}, {"newIntArray", "()[I", (void *) native_new_Int_Array}, };
sortInt
JNIEXPORT jintArray JNICALL native_sort_int(JNIEnv *env, jclass jclazz, jintArray buffer) { //获取Java数组长度 int length = env->GetArrayLength(buffer); LOGD("native_sort_int length : %d", length); //转换为指针 int *arrayP = env->GetIntArrayElements(buffer, NULL); int i = 0; int j = 0; int temp = 0; //排序从大到小 for (i = 0; i < length - 1; i++) { for (j = i + 1; j < length; j++) { if (arrayP[i] < arrayP[j]) { temp = arrayP[i]; arrayP[i] = arrayP[j]; arrayP[j] = temp; } } } //转化为jintArray //env->SetIntArrayRegion(buffer, 0, length, arrayP); //把修改写回原数组并且释放本地数组 env->ReleaseIntArrayElements(buffer, arrayP, 0); return buffer; }
newIntArray
JNIEXPORT jintArray JNICALL native_new_Int_Array(JNIEnv *env, jclass jclazz) { int num = 10; // 1. 创建一个Java的int数组 jintArray array = env->NewIntArray(num); // 2. 获取数组指针 jint *arrayP = env->GetIntArrayElements(array, NULL); // 3. 初始化 int i = 0; for (; i < num; i++) { arrayP[i] = i; } // 4. 把修改写回原数组并且释放本地数组 env->ReleaseIntArrayElements(array, arrayP, 0); return array; }
参考文章
-
《》
-
《》
-
《》
历史上的今天
暂无评论...
随机推荐
Launcher2导入Eclipse
在分析源码中,除了使用Source Insight 这个强大的软件外,有些应用还是用编译器看源码是最好的,因此今天我们学习一下如何导入源码到Eclipse中。这里主要是讲正确把Android 6.0 的Launcher2 导入Eclipse中并运行和安装应用。工具: Eclipse,L...
左右:父亲节
每年这个时候父亲疯了似的像找到了树立威严的绝好机会憋了半年的话全倒出来短信里他批评我怎样不对教育我怎样做人做事而我只能默默听着
interface_cast简介
前言interface_cast在Android Framework中很常见,虽然记得住,但也容易忘记,因此记录一下,方便自己查阅。正文这里以IServiceManager.cpp为例。IServiceManager.cpp目录:\frameworks\native\libs\binde...
HandlerThread的使用
HandlerThread简介HandlerThread是一个Android已封装好的轻量级的异步类。HandlerThread 继承Thread,本质就是个Thread,与普通Thread 的区别在于实现了自己的Looper,可以单独分发和处理消息。作用:用来线程间的消息传递,主要是子线...
jaudiotagger解析ID3第四版
前言前面介绍过《jaudiotagger解析ID3第三版》,然后后面又继续优化。当然,效果跟第三版差不多,但个人觉得写法更好,记录于此,方便自己查阅。阅读jaudiotagger源码进行对之前的代码优化。正文导入jaudiotagger.jar导入lib库/libs/jaudiotag...
TextView走马灯重复走问题
前言之前文章有介绍过走马灯相关内容,比如自定义TextView使得一直走马灯《Android中走马灯(或跑马灯)以及相关问题总结 -笔友城堡 - 阅读是一种生活方式 ()》等。记录一下TextView走马灯时为啥会出现重头开始(或者说抖动)问题以及彻底解决办法。PS:《自定义View:Bi...