Android中使用JNI编程的时候会需要编译出不同的SO文件,以供适配不同的机型。 例如: 由此需要查看不同机型的CPU信息。 使用ADB命令查看CPU信息命令如下: 查看到的信息如下(注意一次只能连接一台设备): 上面这款就是64位CPU的华为机型。 上面这款就是32位的 如果出现adb she ...
分类:
移动开发 时间:
2018-05-08 17:33:39
阅读次数:
1872
1、什么事JNI技术 JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)。从Java1.1开始,JNI标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。 2、怎么用JNI技术 你可以使用JNI来实 ...
分类:
其他好文 时间:
2018-03-24 10:15:45
阅读次数:
160
jni返回到java层的字符串有时正确,有时错误。错误的字符串可能是任何一串字符,看起来很奇怪。 通过加日志,得知生成的jstring已经不正确了,所以怀疑生成jstring用的char*有问题,可能被释放了。 分析代码,里边用的char*是从string转来的,只要string没被释放,char* ...
分类:
其他好文 时间:
2018-03-15 19:27:35
阅读次数:
155
什么是JNI,怎么使用 JNI——Java Native Interface,它是Java平台的一个特性(并不是Android系统特有的)。其实主要是定义了一些JNI函数,让开发者可以通过调用这些函数实现Java代码调用C/C++的代码,C/C++的代码也可以调用Java的代码,这样就可以发挥各个语 ...
分类:
移动开发 时间:
2018-01-02 11:36:22
阅读次数:
164
1、下载好as使用的ndk,在系统环境变量设置相关参数 2、新建一个普通as项目,新建一个类,用来静态加载so库和书写本地native方法 3、目录,在as的terminal控制台输入命令 cd app\build\intermediates\classes\debug 进入编译好的class文件根 ...
分类:
其他好文 时间:
2017-12-06 14:34:31
阅读次数:
224
原本项目中依赖子进程执行的地方,都使用jni调用java层的ProcessManager,换了c++ACE框架后,发现这些任务都很慢,调试才发现所有子进程执行的任务都必须等待到reactor超时才返回控制权。一时慌了居然怀疑是不是app进程没有收到SIGCHLD信号,所以调试跟踪了一下内核,信号正常 ...
分类:
其他好文 时间:
2017-11-03 21:52:29
阅读次数:
178
1、什么是JNI: JNI(Java Native Interface):java本地开发接口 JNI是一个协议,这个协议用来沟通java代码和外部的本地代码(c/c++) 外部的c/c++代码也可以调用java代码 2、为什么使用JNI: 效率上 C/C++是本地语言,比java更高效 代码移植, ...
分类:
其他好文 时间:
2017-10-07 20:53:27
阅读次数:
288
1.在linux平台下使用ndk交叉编译链编译glog生成libglog.a静态库。 2.将生成的库文件与头文件放到Android项目中,使用JNI方法调用。 3.编译遇到错误“stderr、stdout未定义”,(此处查阅n多文档,貌似Android平台下将stderr、与stdout移除了改为了 ...
分类:
移动开发 时间:
2017-09-25 13:19:52
阅读次数:
296
前段时间。就讨论过关于怎样让Service常驻于内存而不被杀死,最后的结论就是使用JNI实现守护进程,可是不得不说的是,在没有改动系统源代码的情况下,想真正实现杀不死服务,是一件非常难的事情。眼下除了白名单的方式。也好像没有发现有一款APP能做到无论怎么搞它都能自己主动重新启动... 近期在GitH ...
分类:
移动开发 时间:
2017-08-18 21:28:59
阅读次数:
303
OpenCV使用可以在以下几个平台使用 1,OpenCV + Android 使用该版本,可以使用OpenCV 在apk部分使用,可以使用java方式,也可以使用JNI方式 2,OpenCV + Windows 常规使用 3,OpenCV+Linux 常规使用 ...
分类:
其他好文 时间:
2017-08-18 14:34:20
阅读次数:
118