2012-01-26 95 views
2

我想知道,是否有在機器人OS的方式來啓動一個新的Dalvik虛擬機,它不從主合子處理(合子虛擬機)分叉,無論是通過亞行外殼,NDK或java?的Android Dalvik虛擬機

有沒有人試圖在其中一個adb命令中成功使用:app_process,dalvikvm,dvz?

感謝您的幫助

+0

嘿你可以發表你的語法和解釋如何能夠啓動一個應用程序在外殼的dvm?我正在尋找類似的東西,這將有所幫助 –

回答

4
  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並在喲中運行它你的主機。

+0

感謝您的答案。只是爲了確保 - 通過這種方式,這個過程不會從zygote過程中分離出來?這意味着它將具有與zygote進程相同的初始化(當然有輕微的變化)?再次感謝 – nir

+0

你在哪裏開展這將是父 –

+0

而且要清楚,如果你想要做的是創造一個受精卵的過程,那麼你就需要指定-Xzygote選項的外殼。但你也必須做一堆其他的東西。有關詳細信息,請參閱Android源app_process(IIRC)。 – danfuzz