JNI 即 Java Native Interface 是 native 编程接口,它允许在Java虚拟机(VM)内运行Java代码与其他编程语言(主要是C和C++)编写的应用程序和库进行交互操作。 JNI最重要的好处是它对底层Java VM的实现没有任何限制。因此,Java VM供应商可以添加对J ...
分类:
移动开发 时间:
2018-11-09 23:24:31
阅读次数:
207
转自:https://www.cnblogs.com/snake-hand/archive/2012/05/25/2517412.html 前期准备: 1、Java JDK 2、gcc 3、g++ 确保上述准备工作完成后开始下边的工作: Java代码: 在终端输入 javac Hello.java ...
分类:
系统相关 时间:
2018-11-08 22:03:24
阅读次数:
209
1、启动 单个文件启动:将jar包跟启动的文件放在一个文件夹下 命令:java -jar moco-runner-<version>-standalone.jar http -p 12306 -c test.json 全局配置启动:java -jar moco-runner-<version>-st ...
分类:
其他好文 时间:
2018-11-08 18:09:27
阅读次数:
213
System.load(String filename)和System.loadLibrary(String libname)的区别 作用: 它们都可以用来装载库文件,不论是JNI库文件还是非JNI库文件。在任何本地方法被调用之前必须先用这个两个方法之一把相应的JNI库文件装载。 其实JDK提供给用 ...
分类:
其他好文 时间:
2018-11-02 11:06:59
阅读次数:
181
JNI中,C/C++代码里创建的资源不由Java GC处理,故这里的资源必须由C/C++代码明确释放。在JNI中,C/C++回调Java的方法是调用一个CallXXMethod函数来实现的,如果回调的方法结束,C/C++执行下一行代码。 故猜测,由C/C++创建的OS线程应该会在运行完run方法后释 ...
分类:
编程语言 时间:
2018-10-28 20:37:42
阅读次数:
241
一、 下载安装Android studio 和 NDK 二、 在Android studio中配置NDK(和SDK配置一样) 三、 用Android studio建立一个工程,打开project,建立一个调用C的类,然后在mian文件夹下建立一个jni文件夹。 四、 打开cmd ,输入cd 工程文件 ...
分类:
移动开发 时间:
2018-10-28 11:10:38
阅读次数:
237
有人提出问题,以下汇编f5结果缺失代码: 很容易从汇编看出,这是个简单的 switch…case{} 代码块。在break时,跳转到 loc_C3C 处。 但f5,其结果如下,明显代码缺失: 下面分析,为什么代码缺失。 由于 Java_com_a_b_c 是一个 jni 函数,所以 r0 为 JNI ...
分类:
其他好文 时间:
2018-10-28 00:51:57
阅读次数:
705
Hook技术应用 已经介绍了安卓 Native hook 原理,这里介绍 hook 技术的应用,及 Cyida Substrate 框架。 分析某APP,发现其POST请求数据经过加密,我们希望还原其明文。经分析,加密是在so中的 Java_com_imohoo_jni_Main_abc() 函数内 ...
分类:
移动开发 时间:
2018-10-28 00:49:04
阅读次数:
242
本篇针对Surface模块进行分析,从Java层的Activity创建开始,到ViewRoot、WindowsManagerService,再到JNI层和Native层。 首先推荐一个Android源码查看的网站:http://androidxref.com/ Surface的创建涉及三个部分: A ...
分类:
移动开发 时间:
2018-10-26 20:39:11
阅读次数:
229
介绍 Jacob 是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用。 安装和配置 Jacob是一个开源软件,它的官方站点是:http://danadler.com/ ...
分类:
其他好文 时间:
2018-10-18 12:26:29
阅读次数:
155