找文章 / 找答案
精选问答 更多内容

[Python独家资料] python连手机都能操控

喝酸奶不舔盖青铜四 显示全部楼层 发表于 2024-3-1 21:58:38 |阅读模式 打印 上一主题 下一主题
本帖最后由 喝酸奶不舔盖 于 2024-3-1 22:17 编辑

“Python编程几乎能做任何事,只要你敢想,敢尝试!”
今天来看下用Python代码怎么来控制你的安卓手机。具体的说是代替你的手,实现自动的触摸和一些动作,实现自动化操作!主要用的是安卓手机的Android调试桥(Android Debug Bridge),它是一个非常有用的工具!本文的这个快速指南中,我将向你展示如何使用Python代码与ADB交互,并如何创建2个快速脚本。

ADB(Android Debug Bridge)是一个命令行工具(CLI),可用于控制Android设备并与之通信。可以执行许多操作:例如安装应用程序,调试应用程序,查找隐藏的功能并使用外壳程序直接与设备连接。要启用ADB,你的设备必须首先解锁开发者选项并启用USB调试——要解锁开发人员选项,转到设备设置,然后向下滚动到“关于”部分,找到设备上当前软件的内部版本号。单击内部版本号7次,将启用“开发人员选项”。然后,您可以转到设置中的“开发人员选项”面板,然后从那里启用USB调试。现在,基本大功告成,你唯一需要做的一件事就是将你的手机用USB电缆连接到计算机。好,今天的旅程是这样的:

o 介绍安装要求
o 初步带你入门、带你飞
o 介绍编写脚本的基础
o 创建自拍计时器
o 创建定义搜索器

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服务器。这应该打印出以下消息:

企业微信截图_a523badb-32c3-4fbb-847c-5ae84fc9dfda.png

如果还安装了scrcpy,则只需在终端中键入scrcpy即可启动。但是,只有将其添加到路径后,此方法才能起作用,否则,可以通过将终端目录更改为安装scrcpy的目录并键入scrcpy.exe来打开可执行文件。希望一切顺利,你应该能够在PC上看到您的设备,并能够使用鼠标和键盘对其进行控制。

现在,我们可以创建一个新的python文件,并检查是否可以使用上面的库找到连接的设备:

企业微信截图_febb8cfe-3000-4342-9c9e-c2e64ea22cdb.png


上面这里,我们导入AdbClient类并使用它创建一个客户端对象。然后,我们可以获得连接的设备的列表。最后,我们从列表中获得第一台设备(如果仅连接了一个设备,则通常是唯一的设备)。

3.编写脚本的基础

我们要与设备连接的主要方式是使用shell,通过这种方式,我们可以发送命令以模拟特定位置的触摸或从A滑动到B。要模拟屏幕触摸(轻击),我们首先需要工作了解屏幕坐标的工作方式。为了帮助解决这些问题,我们可以在开发人员选项中激活指针位置设置。激活后,无论您在屏幕上的何处触摸,都可以看到该点的坐标显示在顶部。手机屏幕坐标系的工作方式如下:

企业微信截图_570a4d3f-c997-4de4-9bd5-968157669e7f.png


显示屏的左上角就是x和y坐标点(0,0),右下角的坐标是x和y的最大可能值。现在我们知道了坐标系的工作原理,我们需要检查一下可以运行的不同命令。我在下面列出了命令列表以及如何使用它们,以供快速参考(英文不懂?好好查查吧)

企业微信截图_87ed577f-be99-442f-b586-69827907fefc.png


4. 创建自拍计时器

哦,现在我们大概知道了能做什么,让我们开始吧,做一个简单的例子。我将向你展示如何创建一个快速的自拍计时器。首先,我们需要导入我们的库并创建一个connect函数以连接到我们的设备:


你可以看到connect函数与前面的如何连接到设备的示例相同,除了这里我们返回设备和客户端对象以供以后使用。

企业微信截图_fc2b67c4-45ae-4206-b2ae-f365224b54c9.png
在上面的主代码中,我们可以调用connect函数来检索设备和客户端对象。从那里我们可以打开相机应用程序,等待5秒钟并拍照。真的就是这么简单!正如我之前说过的,这只是复制你通常会做的事情,因此,如果首先手动进行操作并写下步骤,则思考如何做事情是最好的。

相信和我学Python的童鞋们都能理解上面的代码吧?

5. 创建定义搜索器

现在,我们做一些更复杂的事情:要求浏览器找到特定单词的定义,并截图以将其保存在我们的计算机上。
要写的程序的基本流程如下:
1.打开浏览器
2.单击搜索栏
3.输入搜索查询
4.等待几秒钟
5.截图并保存
但是,在开始之前,你需要在默认浏览器中找到搜索栏的坐标,可以使用我之前建议的方法轻松地找到它们。对我来说,他们是(440,200)。
首先,我们必须导入与以前相同的库,使用相同的connect方法。
企业微信截图_a690903c-aee9-4fe6-9ba1-7fefb1acccf9.png

在我们的主要函数中,我们可以调用connect函数,并为搜索栏的x和y坐标分配一个变量。注意这是一个字符串,而不是一个列表或元组,这样我们就可以轻松地将坐标合并到我们的shell命令中。我们还可以从用户那里获取输入信息,以查看他们想要获取哪个单词的定义。

在这里,我们使用eventID 66模拟输入键的按下以执行搜索。如果需要,可以根据需要更改等待时间。最后,我们在设备对象上使用screencap方法获取屏幕截图,并将其另存为.png文件。

wecom-temp-9843-1b98df28b357d919531ee55b10873857.png


回复

使用道具 举报

精彩评论1

zyj20230601青铜四 显示全部楼层 发表于 2024-3-5 09:43:42
Python编程几乎能做任何事,只要你敢想,敢尝试!
回复 支持 反对

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
50W

会员等你来哦

Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部