我想知道,在 android 操作系统中是否有一种方法可以通过 adb shell、ndk 或 java 启动一个新的 Dalvik 虚拟机,该虚拟机不会从主 zygote 进程(zygote 虚拟机) fork ?
有人尝试在 adb 命令之一中成功使用:app_process、dalvikvm、dvz 吗?
感谢您的帮助
最佳答案
- 使用
dx
将字节码转换为 dex - 使用
dalvikvm
来运行它
如果您需要帮助,请使用 -help 选项
$ dalvikvm -help
dalvikvm: [options] class [argument ...]
dalvikvm: [options] -jar file.jar [argument ...]
The following standard options are recognized:
-classpath classpath
-Dproperty=value
-verbose:tag ('gc', 'jni', or 'class')
-ea[:<package name>... |:<class name>]
-da[:<package name>... |:<class name>]
(-enableassertions, -disableassertions)
-esa
-dsa
(-enablesystemassertions, -disablesystemassertions)
-showversion
-help
The following extended options are recognized:
-Xrunjdwp:<options>
-Xbootclasspath:bootclasspath
-Xcheck:tag (e.g. 'jni')
-XmsN (min heap, must be multiple of 1K, >= 1MB)
-XmxN (max heap, must be multiple of 1K, >= 2MB)
-XssN (stack size, >= 1KB, <= 256KB)
-Xverify:{none,remote,all}
-Xrs
-Xint (extended to accept ':portable' and ':fast')
These are unique to Dalvik:
-Xzygote
-Xdexopt:{none,verified,all,full}
-Xnoquithandler
-Xjnigreflimit:N (must be multiple of 100, >= 200)
-Xjniopts:{warnonly,forcecopy}
-Xjnitrace:substring (eg NativeClass or nativeMethod)
-Xstacktracefile:<filename>
-Xgc:[no]precise
-Xgc:[no]preverify
-Xgc:[no]postverify
-Xgc:[no]concurrent
-Xgc:[no]verifycardtable
-XX:+DisableExplicitGC
-X[no]genregmap
-Xverifyopt:[no]checkmon
-Xcheckdexsum
您还可以编译适用于 x86 的 dalvikvm 并在主机中运行它。
关于Android dalvik虚拟机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9025705/