曾經在某位部落格上看到的,記錄一下。
只需要在tools目錄下寫如下的bat指令碼,即可正常運行CTS
@echo off
set CTS_ROOT=..\..
rem set RDBG_FLAG=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=0
set CTS_LIB=%CTS_ROOT%\android-cts\tools\cts-tradefed.jar
set DDM_LIB=%CTS_ROOT%\android-cts\tools\ddmlib-prebuilt.jar
set TDF_LIB=%CTS_ROOT%\android-cts\tools\tradefed-prebuilt.jar
set HST_LIB=%CTS_ROOT%\android-cts\tools\hosttestlib.jar
set JARS=%CTS_LIB%;%DDM_LIB%;%TDF_LIB%;%HST_LIB%
rem echo java %RDBG_FLAG% -cp %JARS% -DCTS_ROOT=%CTS_ROOT% com.android.cts.tradefed.command.CtsConsole
call java %RDBG_FLAG% -cp %JARS% -DCTS_ROOT=%CTS_ROOT% com.android.cts.tradefed.command.CtsConsole
rem pause
@echo on
有一點需要注意:就是在測試android.core.vm-tests-tf.jar這個包時,需要解壓縮到臨時目錄,由於CTSHOST把這個臨時目錄寫死了Linux的tmp,所以在Windows執行這個測試時會有問題,怎麼辦,我們可以簡單修改一下CTSHOST:
在 cts\tools\tradefed-host\src\com\android\cts\tradefed\testtype 找到 VMHostTest.java
修改 installVmPrereqs 這個 方法中一條語句:
把 File localTmpDir = FileUtil.createTempDir("cts-vm", new File("/tmp/"));
修改 File localTmpDir = FileUtil.createTempDir("cts-vm", new File(System.getProperty("java.io.tmpdir")));
然後重新編譯一下,只需要編譯 cts-tradefed.jar
如果你的版本和google發布一致,那直接替換,如果不一致,建議只替換包中VMHostTest.class,替換前可以jad反編譯對比一下,這樣最保險
驗證過了,確實可用