【问题标题】:Android dalvik virtual machineAndroid dalvik 虚拟机
【发布时间】:2012-01-26 21:35:02
【问题描述】:

我想知道,在 android OS 中有没有办法通过 adb shell、ndk 或 java 来启动一个新的 Dalvik 虚拟机,它不会从主 zygote 进程(zygote 虚拟机)分叉?

有没有人尝试在 adb 命令之一中成功使用:app_process、dalvikvm、dvz?

感谢您的帮助

【问题讨论】:

  • 嘿,您能否发布有关如何在 shell 中的 dvm 中启动应用程序的语法和解释?我正在寻找类似的东西,这会很有帮助

标签: android process dalvik


【解决方案1】:
  1. 使用dx 将您的字节码转换为dex
  2. 使用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 并在您的主机上运行它。

【讨论】:

  • 感谢您的回答。只是为了确保 - 这样该过程不会从 zygote 过程中分叉?意味着它将具有相同的 zygote 进程初始化(当然有微小的变化)?再次感谢
  • 您启动它的 shell 将是父级
  • 并且需要明确的是,如果您想要创建一个 Zygote 进程,那么您需要指定 -Xzygote 选项。但是你还必须做很多其他的事情。有关详细信息,请参阅 app_process (IIRC) 的 Android 源代码。
  • 非常感谢您的帮助,我将参考源代码,我设法使用 dvz 命令启动了一个新进程,但我理解的方式 - 这是一个新进程,我需要提供所有详细信息(要运行的应用程序等等......)但仍然从主 zygote 分叉。如果有人想要语法和解释,我可以在这里发布....
  • 知道你想达到什么目标会很有用
猜你喜欢
  • 1970-01-01
  • 2023-03-24
  • 2011-06-17
  • 1970-01-01
  • 2015-02-22
  • 1970-01-01
  • 2021-09-13
  • 2013-02-18
  • 1970-01-01
相关资源
最近更新 更多