我目前正在使用bash和adb在Android设备上自动配置。当我在一台设备上运行我的代码时,'adb shell输入tap xxx xxx'命令是100%准确的,并且能够很好地完成工作。
当我在多个设备上运行脚本时,坐标似乎发生了变化 - 设备开始点击屏幕上看似随机的位置,好像他们已经重新分配了新的位置。
逻辑上,这可能发生什么?脚本的相关部分如下。
DeviceConfig () {
#Location
./adb -s "$usb" shell am start -n com.android.settings/.Settings
./adb -s "$usb" shell input tap 215 695
./adb -s "$usb" shell input tap 1210 55
#Icons
./adb -s "$usb" shell am start -n com.estrongs.android.pop/.view.FileExplorerActivity
sleep 7
./adb -s "$usb" shell input tap 165 500
./adb -s "$usb" shell input tap 165 500
./adb -s "$usb" shell input tap 165 500
./adb -s "$usb" shell input tap 165 500
sleep 1
./adb -s "$usb" shell input tap 155 150
sleep 1
./adb -s "$usb" shell input tap 155 374
sleep 1
./adb -s "$usb" shell input swipe 680 130 680 130 1500
sleep 1
./adb -s "$usb" shell input tap 920 130
sleep 1
./adb -s "$usb" shell input tap 1185 723
sleep 1
}
for usb in $(./adb devices -l | awk '/ device usb:/{print $3}'); do DeviceConfig $usb ; done
答案 0 :(得分:1)
我假设你在这里谈论相同的设备。
如果您的设备只是放置在水平表面的顶部 - 某些设备可能处于不同的显示方向模式,这会使您的坐标偏斜。
您可以确保所有设备都处于相同位置(让我们说直立),也可以在运行自动化之前将它们设置为固定方向。或者更好 - 停止使用绝对坐标进行模拟触摸。