几行python代码完美操控手机
最近一直成谜于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掉就可以了。
几行python代码完美操控手机的更多相关文章
- 一个 11 行 Python 代码实现的神经网络
一个 11 行 Python 代码实现的神经网络 2015/12/02 · 实践项目 · 15 评论· 神经网络 分享到:18 本文由 伯乐在线 - 耶鲁怕冷 翻译,Namco 校稿.未经许可,禁止转 ...
- 10 行 Python 代码实现模糊查询/智能提示
10 行 Python 代码实现模糊查询/智能提示 1.导语: 模糊匹配可以算是现代编辑器(如 Eclipse 等各种 IDE)的一个必备特性了,它所做的就是根据用户输入的部分内容,猜测用户想要的 ...
- 20行Python代码爬取王者荣耀全英雄皮肤
引言王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了.我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成. 准备工作 ...
- 200行Python代码实现2048
200行Python代码实现2048 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌面 ...
- 40多行python代码开发一个区块链。
40多行python代码开发一个区块链?可信吗?我们将通过Python 2动手开发实现一个迷你区块链来帮你真正理解区块链技术的核心原理.python开发区块链的源代码保存在Github. 尽管有人认为 ...
- 15行python代码,帮你理解令牌桶算法
本文转载自: http://www.tuicool.com/articles/aEBNRnU 在网络中传输数据时,为了防止网络拥塞,需限制流出网络的流量,使流量以比较均匀的速度向外发送,令牌桶算法 ...
- 30行Python代码实现人脸检测
参考OpenCV自带的例子,30行Python代码实现人脸检测,不得不说,Python这个语言的优势太明显了,几乎把所有复杂的细节都屏蔽了,虽然效率较差,不过在调用OpenCV的模块时,因为模块都是C ...
- 21行python代码实现拼写检查器
引入 大家在使用谷歌或者百度搜索时,输入搜索内容时,谷歌总是能提供很好的拼写检查,比方你输入 speling,谷歌会立即返回 spelling. 前几天,看到http://norvig.com/spe ...
- vim中凝视多行python代码
在vim中凝视多行python代码比較麻烦,主要由下面几种方法: (1)将须要凝视的代码以文档字符串的形式呈现 (2)将须要凝视的代码以函数的形式呈现 (3)使用vim自身快捷键 我们主要使用第三种方 ...
- 几行python代码解决相关词联想
日常生活中经常会遇到相关词联想的问题,也就是说输入一个词汇,把相关的词汇查询出来,听起来这个做法也不是太难,但如何去积累那么多的词汇,再用好的算法将相关内容联系起来,本身还是不简单的.笔者认为最简单的 ...
随机推荐
- Antlr语法优化过程记录
背景 Modelica Spec中的语法文件在Antlr下表现很糟糕,至少是1个数量级的糟糕的性能表现 理论 语义谓词减慢速度 ATN图中多分支转换为单分支 可选放在词法开头和语法的结尾 避免前导可选 ...
- burpsuite target 在渗透攻防中的利用
可以用来收集目标站点的更多资产 可以探测一些自动加载的接口.内容等,有的内容并不能被访问者直接看见,通过抓包的方式就可以一目了然. 1栏中是流量信息,其中包含着你所请求的流量 2栏中是对1栏中内容的一 ...
- 【阿里云ACP】-03(数据库RDS)
OSS快速使用入门:创建Bucket 1.用户创建一个Bucket时,可以根据费用单价.请求来源分布.响应延迟等方面的考虑,为该bucket选择所在的数据中心 阿里云所有数据中心都提供OSS公众服务 ...
- win10 蓝屏代码 IRQL NOT LESS OR EQUAL 问题排查(ing)
环境:Win10故障症状: 不定期蓝屏,重启 蓝屏代码: IRQL NOT LESS OR EQUAL 官方建议 尝试方法1:更新win10最新的补丁 [无效] 尝试方法2:重新安装显卡驱动(当前系统 ...
- 解决Ubuntu下的的“system program problem detected”问题
解决Ubuntu下的的"system program problem detected"问题 1.删除crash文件 sudo rm /var/crash/*2.关闭pop up功 ...
- struts2 显示表格
<%@ taglib uri="/struts-tags" prefix="s"%> <h3>All Records:</h3&g ...
- 配置中包含maven属性,在idea中本地启动无法正常获取配置
1. 本地启动一个spring cloud 项目,无法启动 (注:测试环境正常),且控台无错误日志. 分析:debug 代码发现是配置无法获取. 查看配置获取方式 是 spring config 通过 ...
- mysql常规主从复制跟基于GTID的主从复制方法
一,环境部署 192.168.113.129 193.168.113.130 二进制部署mysql5.7的方法见mysql5.7二进制部署,以及部分优化参数 二,mysql基于二进制日志点的复制 1, ...
- Drone自动部署配置文件
.drone.yml 点击查看代码 kind: pipeline # 定义对象类型,还有secret和signature两种类型 type: docker # 定义流水线类型,还有kubernetes ...
- 冰冻三尺非一日之寒,记录Java
一.数据类型 Java是一种强类型语言,什么是强类型语言? 强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用 Java的数据类型又分为两大类: 1.基本类型:基本类型有分为数值 ...