摘要
其实关于调试UiAutoamtor的方法网上都有详细的教程了,只是我估计很多人都是只了解下,并且可能对于bootstrap它实际上也是使用uiautomator写的一个jar都不太清楚,可以看看bootstrap的源代码:
public class Bootstrap extends UiAutomatorTestCase {
public void testRunServer() {
SocketServer server;
try {
// 启动socket服务器,监听4724端口。
server = new SocketServer(4724);
server.listenForever();
} catch (final SocketServerException e) {
Logger.error(e.getError());
System.exit(1);
}
}
}
它继承的是UiAutomatorTestCase 并且实现了一个testRunServer的一个方法,所以实际上bootstrap就是我们平时写UiAutomator打的一个jar包。
那知道了这个就简单了,我们就开始进行简单的调试吧。
环境配置
这里我们需要修改下server端的一些js里面的一些代码。
进入到appium/libs/devices/android/uiautomator.js
看下注释的地方以及它的下面一行,我们这里实际上跟UIAutomator的远程调试一样,增加了一个 -e debug true 就可以
修改完这里,我们就可以启动appium server了。 运行我们的脚本 看看log的显示吧
好了 脚本运行到这里,等待在我们远程的调试了。
我们先打开monitor.bat-Android Device Monitor, (在我们的android sdk的路径下),来找我我们对应应用的端口号
这里可以看到一个红色的虫子,它所对应的端口号,就是debug所监听的端口了,那么现在我们开始进行远程调试吧,打开boottrap项目,这个项目路径就在你安装appium路径下的
Appium\node_modules\appium\lib\devices\android\bootstrap
我这里使用的编译器 intellij idea 那么打开后 我们先做一个断点 设置我们要调试的地方,在 intellij idea的debug配置中,添加一个remote 调试
设置我们之前看到的那个端口号
好了点击debug看看结果吧。
成功进入到debug下了 ,下来你就可以好好的去看boottrap的源代码了。