Python YYDS,轻松控制你的手机!
“Python编程几乎能做任何事,只要你敢想,敢尝试!”,今天来看下用Python代码怎么来控制你的安卓手机。具体的说是代替你的手,实现自动的触摸和一些动作,实现自动化操作!主要用的是安卓手机的Android调试桥(Android Debug Bridge),它是一个非常有用的工具!本文的这个快速指南中,我将向你展示如何使用Python代码与ADB交互,并如何创建2个快速脚本。
ADB(Android Debug Bridge)是一个命令行工具(CLI),可用于控制Android设备并与之通信。可以执行许多操作:例如安装应用程序,调试应用程序,查找隐藏的功能并使用外壳程序直接与设备连接。要启用ADB,你的设备必须首先解锁开发者选项并启用USB调试——要解锁开发人员选项,转到设备设置,然后向下滚动到“关于”部分,找到设备上当前软件的内部版本号。单击内部版本号7次,将启用“开发人员选项”。然后,您可以转到设置中的“开发人员选项”面板,然后从那里启用USB调试。现在,基本大功告成,你唯一需要做的一件事就是将你的手机用USB电缆连接到计算机。
好,今天的旅程是这样的:
介绍安装要求
初步带你入门、带你飞
介绍编写脚本的基础
创建自拍计时器
创建定义搜索器
1. 安装准备工作
需要安装的两件事中的第一件事就是是计算机上的ADB工具。它会自动与Android Studio捆绑在一起,因此,如果已经安装了Android Studio那就不用担心。否则,可以转到官方文档,并且在页面顶部应该有有关如何安装它的说明。
安装ADB工具后,需要获取python库,我们将使用该库与ADB和我们的手机进行接口。安装命令如下:
pip install pure-python-adb #安装pure-python-adb库。
下面这个不是必须的,但很有必要:为了让我们开发脚本时更轻松,可以安装一个名为scrcpy的开源程序,该程序允许我们使用鼠标和键盘在我们的计算机上显示和控制我们的android手机设备。要安装它,可以转到Github仓库并下载适用于你的操作系统(Windows,macOS或Linux)的正确版本。如果使用的是Windows,则将zip文件解压缩到一个目录中,然后将此目录添加到您的路径中。这样一来,我们只需在终端窗口中键入scrcpy即可从系统上的任何位置访问该程序。
2.带你入门带你飞
现在已经安装了所有依赖项,可以启动ADB并连接设备。首先,使用USB电缆将设备连接到PC,如果启用了USB调试,则会弹出一条消息,询问PC是否可以控制设备,只需回答是。然后在你的PC上,打开一个终端窗口,并通过键入adb start-server来启动ADB服务器。这应该打印出以下消息:
如果还安装了scrcpy,则只需在终端中键入scrcpy即可启动。但是,只有将其添加到路径后,此方法才能起作用,否则,可以通过将终端目录更改为安装scrcpy的目录并键入scrcpy.exe来打开可执行文件。希望一切顺利,你应该能够在PC上看到您的设备,并能够使用鼠标和键盘对其进行控制。
现在,我们可以创建一个新的python文件,并检查是否可以使用上面的库找到连接的设备:
上面这里,我们导入AdbClient类并使用它创建一个客户端对象。然后,我们可以获得连接的设备的列表。最后,我们从列表中获得第一台设备(如果仅连接了一个设备,则通常是唯一的设备)。
3.编写脚本的基础
我们要与设备连接的主要方式是使用shell,通过这种方式,我们可以发送命令以模拟特定位置的触摸或从A滑动到B。要模拟屏幕触摸(轻击),我们首先需要工作了解屏幕坐标的工作方式。为了帮助解决这些问题,我们可以在开发人员选项中激活指针位置设置。激活后,无论您在屏幕上的何处触摸,都可以看到该点的坐标显示在顶部。手机屏幕坐标系的工作方式如下:
显示屏的左上角就是x和y坐标点(0,0),右下角的坐标是x和y的最大可能值。现在我们知道了坐标系的工作原理,我们需要检查一下可以运行的不同命令。我在下面列出了命令列表以及如何使用它们,以供快速参考(英文不懂?好好查查吧)
4. 创建自拍计时器
哦,现在我们大概知道了能做什么,让我们开始吧,做一个简单的例子。我将向你展示如何创建一个快速的自拍计时器。首先,我们需要导入我们的库并创建一个connect函数以连接到我们的设备:
你可以看到connect函数与前面的如何连接到设备的示例相同,除了这里我们返回设备和客户端对象以供以后使用。
在上面的主代码中,我们可以调用connect函数来检索设备和客户端对象。从那里我们可以打开相机应用程序,等待5秒钟并拍照。真的就是这么简单!正如我之前说过的,这只是复制你通常会做的事情,因此,如果首先手动进行操作并写下步骤,则思考如何做事情是最好的。
相信和我学Python的童鞋们都能理解上面的代码吧?
5. 创建定义搜索器
现在,我们做一些更复杂的事情:要求浏览器找到特定单词的定义,并截图以将其保存在我们的计算机上。
要写的程序的基本流程如下:
1.打开浏览器
2.单击搜索栏
3.输入搜索查询
4.等待几秒钟
5.截图并保存
但是,在开始之前,你需要在默认浏览器中找到搜索栏的坐标,可以使用我之前建议的方法轻松地找到它们。对我来说,他们是(440,200)。
首先,我们必须导入与以前相同的库,使用相同的connect方法。
在我们的主要函数中,我们可以调用connect函数,并为搜索栏的x和y坐标分配一个变量。注意这是一个字符串,而不是一个列表或元组,这样我们就可以轻松地将坐标合并到我们的shell命令中。我们还可以从用户那里获取输入信息,以查看他们想要获取哪个单词的定义:
我们会将查询添加到完整的句子中,然后对其进行搜索,这样我们就可以始终获取定义。之后,我们可以打开浏览器,然后将搜索查询输入到搜索栏中,如下所示:
在这里,我们使用eventID 66模拟输入键的按下以执行搜索。如果需要,可以根据需要更改等待时间。最后,我们在设备对象上使用screencap方法获取屏幕截图,并将其另存为.png文件:
在这里,我们必须以写字节模式("wb")打开文件,因为screencap方法返回表示图像的字节。如果一切都按计划进行,则应该有一个快速脚本来搜索特定单词。在我的手机上正常工作是这样的:
希望你今天学到了一些新知识,在我对此进行研究之前,我其实也不知道,但很酷的事情是:使用它你基本可以执行平常可以做的任何事情!没错,而且还可以做更多的事,因为它只是模拟你自己在手机上的触摸和动作!
Python YYDS,轻松控制你的手机!相关推荐
- Python YYDS,轻松控制你的手机
"Python编程几乎能做任何事,只要你敢想,敢尝试!",今天来看下用Python代码怎么来控制你的安卓手机.具体的说是代替你的手,实现自动的触摸和一些动作,实现自动化操作!主要用 ...
- python adb模块,python + adb 实现控制手机,,主要步骤:1、USB
python + adb 实现控制手机,,主要步骤:1.USB主要步骤: 1.USB连接手机,手机打开USB调试模式,小米手机可能还要打开允许通过USB调试修改权限或者模拟点击2.下载ADB,在adb ...
- 局域网流量控制_羡慕多屏协同?这3款 App 让你的电脑也能轻松控制 Android 手机...
随着手机的功能越来越多,也越来越强大,智能手机已经可以像电脑一样完成各种各样的工作,如阅读文档.编辑表格.修图等等.有的手机 app 甚至比电脑软件更强大,当我们用电脑搞不定时,手机上的某款 app ...
- python微控制器编程从零开始-单片机可以使用Python语言来控制了!
告诉广大Python爱好者一个好消息,单片机可以使用Python语言来控制了. Arudino虽然在开源硬件领域非常流行,但是对于不懂C/C++编程语言的玩家来说,还是需要一段学习时间. Damien ...
- 用计算机遥控手机,怎么用手机控制电脑?手机控制手机如何实现?
随着远程控制技术的发展,怎么用手机控制电脑是很多人的疑问.用手机远程控制电脑,通过手机实现对电脑的实时操作,实现手机与电脑同时兼得的效果.本文小编教您怎么用手机控制电脑,希望可以帮助到大家. 怎么用手 ...
- 词云可视化:四行Python代码轻松上手到精通
词云可视化:四行Python代码轻松上手到精通 文章目录 词云可视化:四行Python代码轻松上手到精通 本课概要 关于本课程 `粉丝答疑交流QQ群:953712961` `微信赞赏码` 不需要写代码 ...
- Python之流程控制
Python之流程控制 if语句 条件判断语句 if a == b:pass # 满足条件再执行 if a == b:pass else:pass # 满足条件执行第一种语句,不满足条件则执行第二种语 ...
- python爬去百度文库_利用Python语言轻松爬取数据[精品文档]
利用 Python 语言轻松爬取数据 对于小白来说,爬虫可能是一件非常复杂. 技术门槛很高的事情. 比如有人认为学爬虫必须精通 Python ,然后哼哧哼哧系统学习 Python 的每个知识点,很久之 ...
- python语音在线编辑-Python实时语音识别控制
Python实时语音识别控制 概述 本文中的语音识别功能采用 百度语音识别库 ,首先利用 PyAudio 库录制语音指令,保存为受支持的 wav 音频文件,然后利用 百度语音识别库 提供的方法实现语音 ...
最新文章
- TF-IDF与余弦相似性的应用(二):找出相似文章
- hdu 3065 AC自动机
- 使用Speedment 3.0.17及更高版本简化交易
- OneNote使用说明
- Linux下新手基本操作及技巧看图上路
- 萤火虫小程序_新款预览 | 原创森林系列 冰川上 / 小程序改版啦。
- QQ互联官网使用跳坑
- Unknown host ‘raw.githubusercontent.com‘. You may need to adjust the proxy settings in Gradle
- 北京二手房价分析及预测
- Gameplay Ingredients
- Linux流量控制(SFQTBFPRIOCBQHTB原理介绍)
- vue3项目使用Element Plus icon库:统一导入、全局注册组件
- LED驱动器 DC恒流电源板模块
- 武大教授计算机学院,武汉大学计算机学院董文永教授受邀到我院进行学术交流...
- 利用浏览器的 window.print();打印分层表格【强制换页的关键】
- 2021-2027全球与中国重量稀释仪市场现状及未来发展趋势
- 在线ps工具到底好不好用,这篇详细测评带你了解一下。
- 大年初二 | 华章图书祝您福到旺到财运到
- 《Deep residual shrinkage networks for fault diagnosis》 基于深度残差收缩网络的故障诊断(翻译与python代码)
- 谁来保护商务人士的数据安全?