package com.kanxue.test2;
import
com.github.unidbg.AndroidEmulator;
import
com.github.unidbg.Module;
import
com.github.unidbg.arm.backend.DynarmicFactory;
import
com.github.unidbg.linux.android.AndroidEmulatorBuilder;
import
com.github.unidbg.linux.android.AndroidResolver;
import
com.github.unidbg.linux.android.dvm.AbstractJni;
import
com.github.unidbg.linux.android.dvm.DalvikModule;
import
com.github.unidbg.linux.android.dvm.VM;
import
com.github.unidbg.memory.Memory;
import
java.io.
File
;
public
class
Test05 extends AbstractJni {
private final AndroidEmulator emulator;
private final VM vm;
private final Module module;
Test05(){
/
/
创建模拟器
emulator
=
AndroidEmulatorBuilder
.for32Bit().addBackendFactory(new DynarmicFactory(true))
.setProcessName(
"cc.ccc.cc"
)
.build();
/
/
内存调用
Memory memory
=
emulator.getMemory();
/
/
设定 SDK 版本
memory.setLibraryResolver(new AndroidResolver(
23
));
/
/
创建虚拟机
vm
=
emulator.createDalvikVM(new
File
(
"sssss.apk"
));
/
/
jni 日志打印
vm.setVerbose(true);
/
/
jni 设置
vm.setJni(this);
/
/
执行so文件
DalvikModule dm
=
vm.loadLibrary(new
File
(
"ssss.so"
), true);
/
/
获取so 文件模块
module
=
dm.getModule();
/
/
调用JNI——onload 函数
vm.callJNI_OnLoad(emulator,module);
/
/
dm.callJNI_OnLoad(module);
}
}