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