Java与原生代码通信涉及到原生方法声明与定义、数据类型、引用数据类型操作、NIO操作、访问域、异常处理、原生线程 1、原生方法声明与定义 关于原生方法的声明与定义在上一篇已经讲一点了,这次详细分析一下。根据javah自动生成的头文件,可以看出原生方法的声明和定义,例如: JNIEXPORT jst ...
分类:
移动开发 时间:
2017-11-13 21:35:55
阅读次数:
178
(1)jna是对jni的封装,让java使用者能更好的使用本地的动态库 (2)使用jna需要下载jna的jar包,该jar包就是对jni的封装,所以在调用效率上来讲,jna是要比jni低一点的,不过对于大多数项目来说,没有很直观的体现。 (3)将jar包添加到项目中后,写一个接口类,用来和动态库建立 ...
分类:
编程语言 时间:
2017-11-13 13:46:46
阅读次数:
220
1.创建DirectByteBuffer Direct ByteBuffer是通过JNI在Java虚拟机外的内存中分配了一块(所以即使在运行时通过-Xmx指定了Java虚拟机的最大堆内存,还是可能实例化超出该大小的Direct ByteBuffer),该内存块并不直接由Java虚拟机负责垃圾收集. ...
分类:
其他好文 时间:
2017-11-10 20:13:55
阅读次数:
331
首先去官网 https://www.speex.org/downloads/ 下载解压 将include、libspeex文件夹复制到自己新建工程的jni目录下 在jni目录下新增Android.mk文件,复制如下内容,Android.mk中记录了待编译的源文件的路 在jni下创建Applicati ...
分类:
其他好文 时间:
2017-11-08 19:53:01
阅读次数:
135
应用有很多,开个博客都放进来方便查找,也方便修改 1. 语言: 语言方面的知识 1. 基本工具使用: Android studio的调试方法 Android studio的gradle 2. 基本知识: XML的基本概念和Android下的使用 Android JNI 第一个应用:一键打电话 3. ...
分类:
移动开发 时间:
2017-11-06 20:16:12
阅读次数:
155
最近在学着用linux,偶尔发现了一款神奇的软件--termux,termux是一款来自国外的终端模拟器,是运行在内部存储上的程序(不在内存卡上),功能比较强大,启动程序之后会进入命令行终端,需要基本的Linux操作知识,众所周知安卓是Linux的阉割版本,所以终端的使用在安卓上也是返璞归真。ter ...
分类:
移动开发 时间:
2017-11-05 19:17:58
阅读次数:
3940
android生成静态库的方法有两种,一种是编辑android.mk文件,一种是编辑cmakelist文件。前一种没做研究,因为用的ide是android studio,所以直接利用gradle调用cmakelist文件完成静态库的生成,就是第二种方式。现总结如下: 文件需求: 1.cpp头文件源文 ...
分类:
移动开发 时间:
2017-11-04 13:15:37
阅读次数:
763
原本项目中依赖子进程执行的地方,都使用jni调用java层的ProcessManager,换了c++ACE框架后,发现这些任务都很慢,调试才发现所有子进程执行的任务都必须等待到reactor超时才返回控制权。一时慌了居然怀疑是不是app进程没有收到SIGCHLD信号,所以调试跟踪了一下内核,信号正常 ...
分类:
其他好文 时间:
2017-11-03 21:52:29
阅读次数:
178
本文出自:http://blog.csdn.net/dt235201314/article/details/78318399 一丶概述 JAVA中所有的类都继承自Object类,就从Object作为源码解析的开始。 二丶常见方法 注: 以上绿色方法为 非native方法 粉色方法为 native方法 ...
分类:
编程语言 时间:
2017-11-03 19:00:20
阅读次数:
265
今天突然想聊聊面试了,最近有很多朋友让我看简历,也有很多朋友跟我吐槽说:面试被虐了,简直惨不忍睹,都有点怀疑自己的能力了。其实,我想说:正常。之所以这么说是很多朋友可能没有认清一些问题,哪些问题呢?两点:一是,没有认清自己;二是,没有了解公司。 其实说实话,作为程序员,最起码得有80%的人都想进入大 ...
分类:
移动开发 时间:
2017-11-03 16:48:21
阅读次数:
216