我发现模拟器和设备报告的ID存在问题。我确实有不同的Android版本。
转储显示在pastebin dump outputs for emulator and device,屏幕截图在这里 emulator http://imagebin.org/271953 http://imagebin.org/271953和 device 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选项也不适用于非开发人员设备(非root用户)。那么如何在开发设备中测试是否有一些设置?
当我在cyanogenmod rooted设备上执行转储-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可以正常工作
mitenm @ 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 env var set。
我正在尝试-F选项,所以我可以获得R.id,然后我可以在我的测试程序中使用它。可以指出一个例子。似乎-F只能与模拟器一起使用,所以最好使用no_id而不是R.id。
另外,如果我想测试Android服务(不是活动)那么我还能使用androidviewclient吗?如果是这样,请提供示例链接。
我们还可以进行屏幕捕获并写入monkeyrunner等文件吗?
此致
米滕。
答案 0 :(得分:0)
发布的转储似乎来自完全不同的屏幕。例如,第一个标签包含Forgot your username or password?
的标签,而第二个标签不在第二个标签中,但You must log out before proceeding!
仅包含后者。
很遗憾,您的屏幕截图链接已损坏,因此无法提供进一步的帮助。
如果这是您的应用,您可以为观看次数设置内容说明,并且不受 ID 的限制。在--content-description
命令行中使用dump
。
修改强>
关于使用 AndroidViewClient 的屏幕截图以及对monkeyrunner
的改进,请参阅http://dtmilano.blogspot.ca/2013/09/androidviewclientculebra-takesnapshot.html
修改强> 在发现视图时,动态分配唯一ID,因此如果两个应用程序或设备在一个视图中不同,则分配的所有剩余唯一ID也将不同。