当前位置:   article > 正文

python 通过adb实现手机脚本_python adb制作游戏脚本

python adb制作游戏脚本

使用了aircv中的find_template方法从大图片中搜索小图片的坐标。用来点击按钮,查看是否满足状态等。 

  1. import aircv as ac
  2. import os
  3. class Device:
  4. def __init__(self, id):
  5. self.id = id
  6. # 搜索返回图片位置
  7. def search_location(self, imsrc, imsch, threshold = 0.7):
  8. imsrc = ac.imread(imsrc)
  9. imsch = ac.imread(imsch)
  10. result = ac.find_template(imsrc, imsch, threshold=threshold)
  11. if not result:
  12. return result
  13. return result
  14. # 返回
  15. def back(self):
  16. os.system('adb -s ' + self.id + ' shell input keyevent 4')
  17. # 滑动
  18. def swipe(self):
  19. os.system('adb -s ' + self.id + ' shell input swipe 350 1580 350 680 200')
  20. # 截图
  21. def screen_cap(self):
  22. print(self)
  23. os.system('adb -s ' + self.id + ' shell screencap -p /sdcard/' + self.id + '.png')
  24. os.system('adb -s ' + self.id + ' pull /sdcard/' + self.id + '.png')
  25. def pic_in_screen(self, search_img, donotclick=False):
  26. if not donotclick:
  27. self.screen_cap()
  28. result = self.search_location(self.id + '.png', search_img)
  29. if not result:
  30. return False
  31. return result['result']
  32. # 点击
  33. def click(self, pos):
  34. os.system('adb -s ' + self.id + ' shell input tap ' + str(pos[0]) + ' ' + str(pos[1]))
  35. # 点击图片
  36. def click_pic(self, path, donotclick=False):
  37. if not donotclick:
  38. self.screen_cap()
  39. result = self.search_location(self.id + '.png', path)
  40. if not result:
  41. return False
  42. self.click(result['result'])
  43. return True
  44. # 返回当前连接的设备列表
  45. def get_drive_list():
  46. devices = os.popen('adb devices')
  47. str_list = devices.read().split('\n')
  48. drive_list = []
  49. for i in str_list:
  50. if '\t' in i:
  51. drive_list.append(i.split('\t')[0])
  52. return drive_list

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/537795
推荐阅读
相关标签
  

闽ICP备14008679号