androidviewclient转储显示模拟器和设备的不同ID,-F显示错误,androidviewclient可能进行服务测试?

时间:2013-09-26 11:11:55

标签: androidviewclient

我发现模拟器和设备报告的ID存在问题。我确实有不同的Android版本。

转储显示在pastebin dump outputs for emulator and device,屏幕截图在这里 emulator http://imagebin.org/271953 http://imagebin.org/271953device 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等文件吗?

此致

米滕。

1 个答案:

答案 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也将不同。