我看到模拟器和设备报告的 id 不同的问题。我确实有不同的android版本。
转储显示在模拟器和设备的 pastebin转储输出中,屏幕截图在这里 emulator http://imagebin.org/271953 http://imagebin.org/271953和 设备 http://imagebin.org/271954 http:// imagebin.org/271954
请注意,模拟器具有 android 4.2.2 api 17,而设备具有 android 4.2.1。我觉得两者都是 API 17 应该被认为是相同的。我没有在 android sdk manager 中发现 4.2.1 平台。
此外 -F 转储选项不适用于非开发人员设备(未植根)。那么如何在开发设备中进行测试是否有一些设置?
当我在 cyanogenmod 根设备上执行转储 -ViF 时,我得到了以下结果。我还检查了使用
(eval $(adb shell getprop | dos2unix | egrep '\[ro\.secure]|\[ro\.debuggable]' | sed 's/\./_/g; s/]: /=/g; s/[][]//g'); [[ 1 == $ro_secure && 0 == $ro_debuggable ]] && echo "System is secure: AVC won't work" || echo "System is not secure: AVC will work")
系统不安全:AVC 可以工作
mitnm@mitendebian:~$ dump -ViF
Connecting to a device with serialno=.* with a timeout of 60 secs...
Connected to device with serialno=.*
Actual device serialno=0009cdf44f784f
Traceback (most recent call last):
File "//home/mitenm/testing/AndroidViewClient-master/AndroidViewClient/tools/dump", line 134, in <module>
vc = ViewClient(*ViewClient.connectToDeviceOrExit(**kwargs1), **kwargs2)
File "/home/mitenm/testing/AndroidViewClient-
master/AndroidViewClient/src/com/dtmilano/android/viewclient.py", line 1219, in __init__
'tcp:%d' % self.remotePort])
File "/usr/local/lib/python2.7/subprocess.py", line 537, in check_call
retcode = call(*popenargs, **kwargs)
File "/usr/local/lib/python2.7/subprocess.py", line 524, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/local/lib/python2.7/subprocess.py", line 711, in __init__
errread, errwrite)
File "/usr/local/lib/python2.7/subprocess.py", line 1308, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
我设置了 ANDROID_VIEW_CLIENT_HOME 环境变量。
我正在尝试 -F 选项,这样我就可以获得 R.id ,然后我可以在我的测试程序中使用它。能给我举个例子吗。似乎 -F 仅适用于模拟器,因此使用 no_id 而不是 R.id 更好。
另外,如果我想测试 android 服务(而不是活动),那么我还可以使用 androidviewclient 吗?如果是这样,请提供示例链接。
我们也可以像在 monkeyrunner 中那样进行屏幕捕获和写入文件吗?
问候,
米腾。