最近在团队内进行 macaca 的分享,为了方便演示手机上的自动化流程用 scrcpy 进行手机投屏到电脑上,但是执行 macaca 脚本时,会中断 scrcpy 的投屏流程,但是直接在终端执行 adb devices 不会中断 scrcpy。
怀疑 adb 端口冲突造成。然后逐步调试 macaca 的脚本,执行这一步的时候就会中断 scrcpy 的投屏。
xx/Android/sdk/platform-tools/adb devices
这个地方 macaca-adb 执行的为这个命令行,复制到终端执行发现也中断了 scrcpy,但直接在终端执行 adb devices 不会中断 scrcpy。
执行 where adb 后发现本地有两个 adb 工具
这个时候可判断两个 adb 冲突造成 scrcpy 中断。
两个 adb 一个是安卓 sdk 自带的,另外一个为 homebrew 安装 android-platform-tools 时自带的 adb 依赖,将 android-platform-tools 卸载即解决问题,或在 zsh 配置文件中进行删除命令行路径。
调试问题的过程可以更加深刻理解 macaca-adb 的源码。