首页 > 编程语言 >几行python代码完美操控手机

几行python代码完美操控手机

时间:2023-02-27 09:55:44浏览次数:39  
标签:操控 shell python 安卓 几行 命令 adb 客户端

最近一直成谜于python代码带来的便利,今天打算学习下用python代码来控制操作手机,首先需要利用adb,通过安卓调试桥来达到目的,其实也可以用appium来实现,不过appium多数用在自动化测试的,也可以实现对手机操控。

Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信。adb 命令可用于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件:

1、客户端:用于发送命令。客户端在开发计算机上运行。您可以通过发出 adb 命令来从命令行终端调用客户端。

2、守护进程 (adbd):在设备上运行命令。守护进程在每个设备上作为后台进程运行。

3、服务器:管理客户端和守护进程之间的通信。服务器在开发机器上作为后台进程运行。

adb是安卓的一种组件,也可以直接在安卓当中使用,通过python使用的adb的操作,打个比方,A会吃饭,要吃饭,然后B叫A用嘴巴吃饭,这样吃,然后A就这样吃饭了。这里的A就是安卓手机,B就是python脚本。

想要使用adb,首先得配置好环境变量,首先先去安卓的官网下载adb的工具,地址https://developer.android.google.cn/studio/releases/platform-tools,然后存放到任意地址后,再将这个platform-tools的地址添加到环境变量中,然后在控制台窗口中输入adb,如果看到以下的情况,就说明安装完成了。(如图1)

这时候用数据线连接手机,手机根据自己的系统打开开发者模式,然后在控制台窗口中输入adb devices,然后就会出现你的设备名称。(如图2)

利用python代码来控制也是通过系统命令来实现的,你也可以直接在电脑的控制台窗口输入adb命令,运行同样也可以对手机进行操作。

一个点击命令:

adb shell input touchscreen 500 500

这句话的功能是模仿点击屏幕,在500,500的位置点击了一下。如果你输入的命令不对的话,adb也会回馈正确的命令格式或关键字。(如图3)

其中的设备有平板,键盘,鼠标,手柄等等,控制方式有直接的文本,或者单个的单词,点击,滑动,后面的两个我自己自测是是用不了,可能是我没找到方法。

因为我之前做的时候主要想实现的能够模仿人手去控制手机的那些操作,使用了之后发现弊端还是有很多,不够灵活,不能实现长按或者按住滑动之类的。但是如果说安排好固定的流程,比如一些游戏的刷金币的话,没有复杂的操作,只有单一的点击事件的话,用adb还是相当方便的,只要写好循环,持续的发送adb命令,就可以不断的的运行操作了。

在python中,要使用adb的话,只需要一个os的库就可以。(如图4)

也可以使用subprocess.Popen,最简单使用方式如下,设置shell=True,就不会弹出cmd框

process = subprocess.Popen('adb shell input tap 14 1402',shell=True)(如图5)

这两种方式都是可以,我在使用后者多一些,并且是应用多线程去使用的,这时候会因为过多的创建,然后发生阻塞,这时候只要把这个服务端口kill掉就可以了。

标签:操控,shell,python,安卓,几行,命令,adb,客户端
From: https://www.cnblogs.com/q-q56731526/p/17158651.html

相关文章

  • 登峰造极,师出造化,Pytorch人工智能AI图像增强框架ControlNet绘画实践,基于Python3.10
    人工智能太疯狂,传统劳动力和内容创作平台被AI枪毙,弃尸尘埃。并非空穴来风,也不是危言耸听,人工智能AI图像增强框架ControlNet正在疯狂地改写绘画艺术的发展进程,你问我绘画行......
  • python学习1
    importpandasaspdimportnumpyasnpcatering_sale='D:\大三下\大数据实验课\data\catering_sale.xls'data=pd.read_excel(catering_sale,names=['data','sale'])......
  • Python中如何读取npy、npz文件?
    npy以及npz这两种文件格式,是python第三方库numpy才能够保存和读取的文件类型,而也只有通过该库才有方法来完成读取保存操作。下面这篇文章所要介绍的内容就是,python读取和保......
  • 用Python画数据分析第三章的图
    importpandasaspdcatering_sale="C:/Users/Lenovo/Desktop/catering_sale.xls"data=pd.read_excel(catering_sale,index_col=u'日期')print(data.describe())importm......
  • Python split()方法
    通过指定分隔符对字符串进行切片split()方法语法:str.split(str="",num=stpring.count(str)).str--分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。num--......
  • Python绘图
    1.二维绘图a.一维数据集用Numpyndarray作为数据传入ply1.importnumpyasnpimportmatplotlibasmplimportmatplotlib.pyplotaspltnp.random.seed(1000)y=np.ra......
  • Python 常用内置函数 肆
    max返回可迭代对象中的最大值语法参数defmax(*args,key=None):#knownspecialcaseofmax"""max(iterable,*[,default=obj,key=func])->value......
  • python数据分析绘图
    importpandasaspdcatering_sale='D:\计算机网络\catering_sale.xls'data=pd.read_excel(catering_sale,index_col='日期')print(data.describe())    ......
  • 在python中使用ChatGPT
    首先,安装HuggingFaceTransformers库和PyTorch库。在终端中运行以下命令:pipinstalltransformerspipinstalltorch然后,使用以下代码来初始化ChatGPT模型并生成......
  • python绘图函数
    1.plot绘制线型图importmatplotlib.pyplotaspltimportnumpyasnpimportpandasaspdplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicod......