为什么有这个东西,一方面时AOP框架的需要,另一方面是增加软件逆向的难度动态生成类的技术目前大体上分为两类,一类是通过操作字节码框架如cglib/Javassist去实现,另一类就是JNI方式,调用dll/so库,内存中动态还原。这两种方式都能实现隐藏类看一个Javassist动态生成类的例子packagecom.vvvtimes;importjava.lang.reflect.Modifier;
分类:
编程语言 时间:
2018-04-23 11:15:29
阅读次数:
230
想用c++代码在Java中调用,之前也一直OK调用.so库和jni接口,但不知道为什么在AS3.0上一直报标准库找不到; 还有一个变动就是AS2.2以后ndk编译默认采用cmake了,这就导致以前的Android.mk和Application.mk文件写法不行了;但为了方便还是使用了ndk buil ...
分类:
其他好文 时间:
2018-04-22 14:49:14
阅读次数:
227
JNA(Java Native Access):建立在JNI之上的Java开源框架,SUN主导开发,用来调用C、C++代码,尤其是底层库文件(windows中叫dll文件,linux下是so【shared object】文件)。 JNI是Java调用原生函数的唯一机制,JNA就是建立在JNI之上,J ...
分类:
其他好文 时间:
2018-04-21 17:45:24
阅读次数:
258
源码路径:frameworks/base/media/java/android/media/MediaRecorder.javaframeworks/base/media/jni/android_media_MediaRecorder.cppframeworks/av/media/libmedia/ ...
分类:
移动开发 时间:
2018-04-11 15:52:54
阅读次数:
465
非标准参数又称为扩展参数,其列表如下: Xint 设置jvm以解释模式运行,所有的字节码将被直接执行,而不会编译成本地码。 Xbatch 关闭后台代码编译,强制在前台编译,编译完成之后才能进行代码执行; 默认情况下,jvm在后台进行编译,若没有编译完成,则前台运行代码时以解释模式运行。 Xbootc ...
分类:
编程语言 时间:
2018-04-10 17:48:52
阅读次数:
205
研究发现, 无论是使用gcc还是g++, GCC for Windows生成DLL动态链接库时都会修改我们的符号, 导致即使加载了动态链接库, JVM仍然找不到符号, 从而产生java.lang.UnsatisfiedLinkError错误 所以还是使用微软自家的VS来生成DLL比较妥当, 由于VS ...
分类:
编程语言 时间:
2018-04-10 15:10:53
阅读次数:
228
转自https://blog.csdn.net/guiman/article/details/70739490 写在正文之前: 几个月没有更新博客,感觉有点生疏了,所以说不能断,一断人就懒。 其实这几个月也并不是什么事也没有做,俺可是时刻想着今年的任务呢,10本书,30篇博文…,这几个月间断性的也是 ...
分类:
移动开发 时间:
2018-04-08 19:50:31
阅读次数:
195
转自 https://www.cnblogs.com/xyang0917/p/4172490.html 第五步、将C/C++代码编译成本地动态库文件 动态库文件名命名规则:lib+动态库文件名+后缀(操作系统不一样,后缀名也不一样)如: Mac OS X : libHelloWorld.jnilib ...
分类:
其他好文 时间:
2018-04-08 18:07:42
阅读次数:
223
1、新建项目,不选include support c++ 2、新建文件夹cpp,将.cpp文件放入其中; 3、编写jni接口文件,注意文件内函数名称前缀要与app下的build.gradle的applicationId保持一致; 4、编写CMakeLists.txt,在view->tool wind ...
分类:
移动开发 时间:
2018-04-08 14:33:22
阅读次数:
209
这一章主要是介绍安卓从Linux分支而来却又具有自己特有特性如Dalvik,framworks,JNI,bionic等。 1.1 主要是安卓的发展历史 每个版本的变更 wiki也有相应的更新 目前android已更新到8.1(注意每个版本代表性的更新特性) https://zh.wikipedia. ...
分类:
移动开发 时间:
2018-04-08 00:19:40
阅读次数:
296