这篇文章主要介绍如何在安卓手机上运行python代码从而控制安卓手机进行模拟操作的方法。仅适用于安卓11及以上系统。
一、文章由来:
文章的由来起源于我一个想法:我手上有一块闲置的esp8266单片机,想要用它来做一个手机小说翻页器,但是难点在于如何在手机上接收信号并模拟操作,而且python代码并不支持安卓系统运行。经过我的一番努力,找到了两种方式,并成功制作小说翻页器,一种方式就是本文中介绍的方法使用python控制手机,另一种是使用auto.js软件控制。
给大家看看我最终制作好的手机翻页器成品效果:
不过今天分享的仅仅是制作这个小工具的一环——如何实现使用python模拟手机操作。
我将介绍2种使用python模拟手机操作的方法:这两种方法不是网上有些人说的用数据线连接电脑,然后再在电脑上运行python控制手机,而是仅需一部安卓手机,在安卓手机上运行python,从而控制手机。
二、第一种方法:
2.1 需要的工具:
- termux(安卓软件,自行搜索下载)
- shizuku(安卓软件,自行搜索下载)
2.2 实现原理:
shizuku这个软件的作用是不用手机连接电脑也能在手机上使用adb命令。
termux是一个模拟linux的软件,使用它可以运行linux命令。
使用shizuku赋予termux运行adb命令的权限,比较复杂,可以看2.3节的视频。
然后在termux中运行adb命令来实现控制手机的效果。
2.3 详细操作过程:
这个视频介绍了如何使用termux和shizuku两个软件实现python控制手机进行自动化操作的详细操作过程。
2.4 运行adb命令的方法:
运行单条命令:
在termux中安装好python后,比如在python中输入以下代码可以实现按下音量+的效果。
os.system("sh rish -c 'input keyevent 24'")
其中sh rish -c作用是使用termux启动一个拥有输入adb命令权限的终端窗口,-c的作用是将后续的代码作为命令输入;input keyevent 24是adb命令,模拟按下音量+键。你也可以查询一些其它的adb命令比如"截屏","点击手机上某个坐标"等。
运行多条命令方法1:
os.system("sh rish -c 'input keyevent 24 && input 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节视频5min之后的部分。
三、第二种方法:
3.1 需要的工具:
- termux(安卓软件,自行搜索下载)
3.2 实现原理:
利用安卓手机的无线调试功能,在termux中安装一个adb工具包,运行adb命令来实现控制手机的效果。
3.3 详细操作过程
这个视频中演示了使用python进行多次自动模拟滑动的操作,以及如何只使用termux一个软件实现python控制手机进行自动化操作。
3.3 运行adb命令的方法:
和2.3节类似,参考2.3节即可,只不过命令格式有所区别:
两种命令格式的对比如下
#这是方法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只需要1个termux就能运行,为什么还要介绍第一种要用到两个软件的方法,之所以介绍以上两种方法,是因为方法2中有一步需要联网下载android-tools包,万一到时候下载失败这种方法失效,好歹有一种可以备用的方法。
好了,以上就是本次分享的关于python如何控制手机实现自动化的内容,拜拜啦~
