如何在安卓11及以上系统上使用Python代码控制安卓手机进行模拟操作
本文主要介绍如何在Android手机上运行python代码来控制Android手机进行模拟操作。仅适用于Android 11及以上系统。

一、文章来源:
文章源于我的一个想法:我有一个闲置的esp8266单片机,想用它来做一个手机小说翻页器。但难点在于如何接收信号并在手机上模拟操作,而且python代码不支持在Android系统上运行。经过一番努力,我找到了两种方法,成功制作了一本翻页小说。一种方式是使用本文介绍的python来控制手机,另一种方式是使用auto.js软件来控制。
下面给大家展示一下我最终制作的手机翻页器的成品效果:
自制翻页效果演示
不过我今天分享的只是制作这个小工具的一部分——如何使用python来模拟手机操作。
我介绍2种利用python模拟手机操作的方法:这两种方法并不像网上有些人说的用数据线连接电脑,然后在电脑上运行python来控制手机。相反,他们只需要一部 Android 手机。在手机上运行python来控制手机。
2、Python控制手机方法一: 2.1 所需工具: 2.2 实现原理:
shizuku软件的功能是在手机上使用adb命令,无需将手机连接电脑。
Termux是一个模拟Linux的软件,可以用来运行Linux命令。
使用 shizuku 授予 termux 运行 adb 命令的权限。情况比较复杂。您可以观看第 2.3 节中的视频。
然后在termux中运行adb命令即可达到控制手机的效果。
2.3 详细操作流程:
两款软件实现python控制手机自动化
本视频介绍了如何使用termux和shizuku实现python控制手机进行自动化操作的详细操作过程。
2.4 如何运行adb命令:运行单个命令:
例如在termux中安装python后,在python中输入以下代码即可实现按音量+的效果。
os.system("sh rish -c '输入 keyevent 24'")
sh rish -c 的功能是使用 termux 启动一个具有输入 adb 命令权限的终端窗口。 -c的作用是将后续代码作为命令输入; input keyevent 24是一个adb命令,它模拟按下音量+键。您还可以查询其他一些adb命令,例如“屏幕截图”、“点击手机上的坐标”等。
方法1运行多个命令:
os.system("sh rish -c '输入 keyevent 24 && 输入 keyevent 24'")
上述命令的效果是按两次音量+键。 &&符号的作用是在运行上面的命令后运行下面的命令,与Windows cmd中的用法相同。
运行多个命令方法2:
该方法是通过在python脚本中编写代码来实现的,比如下面的脚本。
os.system("sh rish -c 'input keyevent 25'") #按下音量-
time.sleep(1) #延迟1s
os.system("sh rish -c 'input keyevent 24'") #按下音量+
演示请参考本文2.3节视频5分钟后的部分。
3、Python控制手机方法二: 3.1 所需工具: 3.2 实现原理:
使用Android手机的无线调试功能,在termux中安装一个adb工具包,运行adb命令即可达到控制手机的效果。
3.3 详细操作流程:
只需要一个App就可以实现手机的python自动操作
本视频演示了使用python自动模拟多次滑动操作,以及如何仅使用termux软件实现python控制手机进行自动化操作。
3.4 如何运行adb命令:
与2.4节类似,参考2.4节即可,但命令格式不同:
两种命令格式对比如下
#这是方法1命令格式
os.system("sh rish -c 'input keyevent 25'")
#这是方法2命令格式
os.system("adb shell input keyevent 25")
# 方法1运行多条命令
os.system("sh rish -c 'input keyevent 24 && input keyevent 24'")
# 方法2运行多条命令
os.system("adb shell input keyevent 25&&adb shell input keyevent 25") #连续两次音量-
您可能有疑问。既然方法2只需要termux,为什么还要介绍第一种需要两个软件的方法呢?之所以介绍以上两种方法,是因为方法2中有一步需要在线下载。 android-tools包,如果下载失败且此方法失败,还有备份方法。