1

我正在编写一个脚本来自动化测试:填充 Android 设备的内部存储器。该脚本是用 python 编写的,我正在使用 monkeyrunner 连接到设备并发出命令。
我需要创建虚拟文件来执行此操作。如果我使用这个命令:

subprocess.call('adb shell dd if=/dev/zero of=/storage/sdcard0/dummy/dummy_file bs=1000000000 count=1', shell = True)

有用。虚拟文件已创建。但我想使用以下内容:

device.shell('dd if=/dev/zero of=/storage/sdcard0/dummy/dummy_file bs=1000000000 count=1')

哪个应该做同样的事情。但后者不起作用并生成:

Importing modules
Waiting for connection
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice] Error executing command: dd if=/dev/zero of=/storage/sdcard0/dummy/dummy2 bs=1000000000 count=1
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]com.android.ddmlib.ShellCommandUnresponsiveException
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]   at com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:408)
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]   at com.android.ddmlib.Device.executeShellCommand(Device.java:453)
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]   at com.android.chimpchat.adb.AdbChimpDevice.shell(AdbChimpDevice.java:269)
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]   at com.android.monkeyrunner.MonkeyDevice.shell(MonkeyDevice.java:217)
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]   at java.lang.reflect.Method.invoke(Method.java:597)
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]   at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:175)
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]   at org.python.core.PyObject.__call__(PyObject.java:355)
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]   at org.python.core.PyMethod.__call__(PyMethod.java:215)
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]   at org.python.core.PyMethod.instancemethod___call__(PyMethod.java:221)
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]   at org.python.core.PyMethod.__call__(PyMethod.java:206)
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]   at org.python.core.PyObject.__call__(PyObject.java:397)
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]   at org.python.core.PyObject.__call__(PyObject.java:401)
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]   at org.python.pycode._pyx0.f$0(/home/gabriel/android/git/androidqa/prebuilt/monkeyrunner/InternalStorage/int_storage_fill.py:57)
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]   at org.python.pycode._pyx0.call_function(/home/gabriel/android/git/androidqa/prebuilt/monkeyrunner/InternalStorage/int_storage_fill.py)
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]   at org.python.core.PyTableCode.call(PyTableCode.java:165)
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]   at org.python.core.PyCode.call(PyCode.java:18)
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]   at org.python.core.Py.runCode(Py.java:1197)
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]   at org.python.core.__builtin__.execfile_flags(__builtin__.java:538)
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]   at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:156)
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]   at com.android.monkeyrunner.ScriptRunner.run(ScriptRunner.java:116)
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]   at com.android.monkeyrunner.MonkeyRunnerStarter.run(MonkeyRunnerStarter.java:77)
121003 16:54:32.383:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]   at com.android.monkeyrunner.MonkeyRunnerStarter.main(MonkeyRunnerStarter.java:189)

有谁知道为什么会发生这个错误?

4

1 回答 1

1

AdbChimpDeviceTimeoutException如果 shell 命令未在一定时间内完成并且您的dd命令超出此限制,则生成一个。你应该坚持subprocess替代方案。

默认超时为 5 秒。

于 2012-10-03T14:58:24.670 回答