手机连电脑必备的adb驱动,下载地址:http://adbshell.com/downloads
usb连接的,pc安装android手机驱动,wifi Adb的可以不用安装android手机驱动(安卓手机root,(使用root大师),安装adb wareless,给予root权限;)。

安装 Python环境,下载地址参考:Python 3.7 https://www.python.org/,官网有点慢,可以选web-based版,在线安装版,像安装360卫士之类的一样的方式。
在安装的过程中记得勾选:“Add Python 3.7 to PATH” 。如果没有勾选,需要在安装完成之后,将Python的安装目录(如:D:\Python\Python37(我的安装目录))添加到环境变量path中。


python通过adb控制android手机,在adb命令中,除了shell命令还有其他的命令。通过adb help可以获得其他操作的命令。或者https://blog.csdn.net/jlminghui/article/details/39268419
在手机开发者选项中,在输入栏目下 指针位置 点击打开,可以在屏幕上方获取当前点击位置的坐标点(X,Y)
//在屏幕上做划屏操作,前四个数为坐标点,后面是滑动的时间(单位毫秒)
adb shell input swipe 50 250 250 250 500
//在屏幕上点击坐标点x=50  y=250的位置。
adb shell input tap 50 250
//截图
adb shell /system/bin/screencap -p /sdcard/screenshot.png
//将截好的图保存到电脑之中
adb pull /sdcard/screenshot.png D:\screenshot


代码包含中文,如果运行报错则需要在最前面加上

# coding=UTF-8

Python脚本中操作app的用法:

检查app安装情况(返回true/false), driver.is_app_installed(package_name)
安装app driver.install_app("x:/xxx.apk")
卸载app driver.remove_app(package_name)
打开通知栏 driver.open_notifications()
关闭app driver.close_app()
启动app driver.launch_app()
锁定屏幕x秒(不是很好用,锁定后屏幕无法解锁,导致无法后续,本人未找到解锁的方法) driver.lock(X)
模拟摇晃设备 driver.shake
重置应用 driver.resetApp()
检查是否存在某个activity(未找到则返回异常) driver.find_element_by_id(activity)
获取当前的activity: activity = self.driver.current_activity print(u"当前的activity是:", activity)
等待activity启动直到x秒超时,每隔y秒扫描一次 driver.wait_activity(activity, x, y)
将app置于后台运行x s(注意:测试发现置于后台数秒后变为前台时,将是重新启动app,进入首页,而不是切入后台时的界面) driver.background_app(x)
打印可用的输入法 IME_LISE = driver.available_ime_engines print(IME_LISE)
检查设备是否有输入法服务活动,返回True/False driver.is_ime_active()
激活安卓设备中的指定输入法(设备可用输入法可以从“available_ime_engines”获取)") driver.activate_ime_engine(IME_LISE[-1])
退出键盘 driver.hide_keyboard()

在adb文件夹下建立一个python文件
import os
import time

# 点击事件
def click(x, y):
   # 点击屏幕上坐标为(x,y)的点
   cmd = "adb shell input tap {x1} {y1}".format(
       x1=x,
       y1=y
   )
   os.system(cmd)
运行脚本,发现与在命令行输入相同语句有同样的效果。以上就是简单地演示如果通过python脚本控制安卓手机的一个最简单的例子。

好了,上面的东西只适合让你快速体验,真正应用还需要大量的py的库
uiautomator2 是一个可以使用Python对Android设备进行UI自动化的库。
1.安装uiautomator2依赖
pip install --pre uiautomator2
pip install pillow
更多的 uiautomator2 的使用方式可参考:https://github.com/openatx/uiautomator2
2.初始化
电脑连接上一个手机或多个手机, 确保adb已经添加到环境变量中,执行下面的命令,会自动安装本库所需要的设备端程序:(uiautomator-server 、atx-agent、openstf/minicap、openstf/minitouch),安装完成,设备上会多一个uiautomator的应用。
python -m uiautomator2 init
手机连着数据线,看着好累,用wifi吧
编写以下脚本进行验证:
import uiautomator2 as u2
d = u2.connect('192.168.1.x')
print(d.info)


.python中的openCV模块进行简单的图像识别,安装依赖方法:命令行中输入pip install opencv-python进行下载
.python中的numpy,PIL和pylab模块进行简单运算和图像处理,pip install matplotlibpip install numpy和pip install pillow
https://blog.csdn.net/qq_35624030/article/details/79618988

参考
https://blog.csdn.net/HappinessCat/article/details/81146221
uiautomator2 https://www.cnblogs.com/fnng/p/8486863.html
uiautomator   https://blog.csdn.net/FirmDapeng/article/details/80290113
https://www.jianshu.com/p/eb499535b73b
https://blog.csdn.net/gb112211/article/details/42390695
https://blog.csdn.net/gb112211/article/details/38018615
https://blog.csdn.net/qq_35624030/article/details/79888019
https://blog.csdn.net/qq_35624030/article/details/79618988
https://blog.csdn.net/qq_41841569/article/details/83751457