Skip to main content
 首页 » 编程设计

android之如何在android中通过adb检测屏幕变化

2025年05月04日37mengfanrong

我正在寻找一种方法来检测屏幕是否从以前的屏幕发生变化.. 我的意思是:我的“屏幕 A”上满是按钮 - 我试图按下所有按钮,但只有其中一个会带我到“屏幕 B”..

我正在寻找一种可以遍历所有按钮并在到达“屏幕 B”后中断的方法 - 通过 adb

我尝试从上一个屏幕查看 uiautomator dump 并在每次单击按钮后获取"new"屏幕的 UI 层次结构并进行比较 - 但结果不成功。

有什么想法吗? 谢谢

请您参考如下方法:

我假设您已经了解了 input tap X Y 的 adb 命令。

我建议在 input tap 之前和之后拉动 screencap 1 秒,然后比较屏幕截图以查看屏幕是否发生变化。 screencap 的代码如下所示:

adb shell screencap -p /sdcard/screen.png 
adb pull /sdcard/screen.png 
adb shell rm /sdcard/screen.png 

有几种方法可以比较图像。由于您使用的是 Python,因此您可以轻松比较图像内的像素,但我会使用的另一种方法是比较两个图像的确切文件大小,同一屏幕的 .jpg 屏幕截图将具有完全相同的文件大小,除非右上角的时钟更新或其他通知滚动。如果两个窗口的屏幕截图之间存在重大差异,您可以使用简单的大于/小于 if 语句来确定。

希望对您有所帮助,