Android 如何使用Eclipse调试UIAutomator脚本

Android 如何使用Eclipse调试UIAutomator脚本,android,android-uiautomator,Android,Android Uiautomator,据我所见,当UIAutomator脚本被编译成jar文件并使用adb shell命令运行时。我可以看到有一个-e debug命令行选项,它在启动之前等待调试器连接,但是如何从Eclipse将其连接到调试器,以便调试UI自动机脚本?我已经解决了这个问题。这个过程有点冗长,但它是有效的 这方面的关键是理解如何使用和理解Java和Eclipse的远程调试。简而言之,请遵循以下步骤: 通过单击Window>openperspective>Other…>DDMS。假设您有一个正在运行的模拟器/设备,您应该

据我所见,当UIAutomator脚本被编译成jar文件并使用adb shell命令运行时。我可以看到有一个-e debug命令行选项,它在启动之前等待调试器连接,但是如何从Eclipse将其连接到调试器,以便调试UI自动机脚本?

我已经解决了这个问题。这个过程有点冗长,但它是有效的

这方面的关键是理解如何使用和理解Java和Eclipse的远程调试。简而言之,请遵循以下步骤:

  • 通过单击
    Window>openperspective>Other…>DDMS
    。假设您有一个正在运行的模拟器/设备,您应该会在“设备”选项卡中看到您的设备
  • 设置远程调试配置。要执行此操作,请转到
    Run>Debug Configurations
  • 右键单击左侧面板中的远程Java应用程序,然后单击“新建”以创建新配置
  • 在连接属性中,使用localhost和端口8700。在我的例子中,我使用的是在本地开发机器上运行的仿真器。DDMS的默认端口为8700。如果您的设置不是这样,则可以在调试模式下运行UI Automator脚本后,从DDMS的角度检查需要的端口。(见下面的步骤7-9)
  • 确保您选择的项目是要运行的UI自动化项目。在“源”选项卡中,您还可以在其中添加UI自动化项目。(不确定这是否是强制性的)
  • 单击“应用”,然后关闭
  • 现在,我们将使用命令行开始运行带有调试选项的UI自动机脚本。在我的示例中,命令是(全部在一行上):

    adb shell uiautomator runtest AndroidUIAutomation.jar-c com.example.uiautomation.TestUiAutomation-e debug true

  • 然后它会说:

    发送等待块

  • 在Eclipse中,进入DDMS透视图。在设备选项卡下,您应该看到一个带有红色小错误符号的进程。旁边是一个问号。在表的最后一列中,将有两个端口号,例如8602/8700。端口8700是将远程调试会话连接到的端口。这是应该在上面的步骤4中配置的

  • 现在可以开始远程调试了。在UI自动机脚本中的某个位置设置断点。然后通过转到
    Run>debug Configurations
    …进行调试。。。然后选择前面创建的远程Java应用程序配置,然后单击“调试”


  • 如果一切顺利,那么您应该能够调试UI自动机脚本

    我在Android Studio中执行了类似的操作……但是脚本并没有在断点处停止。您是否尝试使用带有Android M(SDK级别23)的设备?我试过了,但没用。你能帮忙吗?这个解决方案不适用于安卓M,请建议我安卓M的替代解决方案?