首页 > 编程语言 >YYDS!轻松用Python控制你的手机

YYDS!轻松用Python控制你的手机

时间:2023-12-27 13:33:30浏览次数:38  
标签:YYDS Python 可以 轻松 ADB 使用 安装 我们 设备

“Python编程几乎能做任何事,只要你敢想,敢尝试!”,今天来看下用Python代码怎么来控制你的安卓手机。具体的说是代替你的手,实现自动的触摸和一些动作,实现自动化操作!

YYDS!轻松用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.创建定义搜索器

现在,我们做一些更复杂的事情:要求浏览器找到特定单词的定义,并截图以将其保存在我们的计算机上。

要写的程序的基本流程如下:

  • 打开浏览器
  • 单击搜索栏
  • 输入搜索查询
  • 等待几秒钟
  • 截图并保存

但是,在开始之前,你需要在默认浏览器中找到搜索栏的坐标,可以使用我之前建议的方法轻松地找到它们。对我来说,他们是(440,200)。

首先,我们必须导入与以前相同的库,使用相同的connect方法。

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

我们会将查询添加到完整的句子中,然后对其进行搜索,这样我们就可以始终获取定义。之后,我们可以打开浏览器,然后将搜索查询输入到搜索栏中,如下所示:

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

在这里,我们必须以写字节模式("wb")打开文件,因为screencap方法返回表示图像的字节。如果一切都按计划进行,则应该有一个快速脚本来搜索特定单词。在我的手机上正常工作是这样的:

希望你今天学到了一些新知识,在我对此进行研究之前,我其实也不知道,但很酷的事情是:使用它你基本可以执行平常可以做的任何事情!没错,而且还可以做更多的事,因为它只是模拟你自己在手机上的触摸和动作!

标签:YYDS,Python,可以,轻松,ADB,使用,安装,我们,设备
From: https://blog.51cto.com/u_15739596/8998752

相关文章

  • # yyds干货盘点 # 盘点一个基金数据的Python网络爬虫案例
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【哎呦喂 是豆子~】问了一个Python网络爬虫问题,一起来看看吧。问题描述:大佬们这个13位数字怎么构造呀 找不到规律 试了在第一页的url基础上加数字也是不行1、网站链接:http://quote.eastmoney.com/center/gridlist.html......
  • python之日志logging
    转载:https://blog.csdn.net/weixin_43790276/article/details/101944628 logging模块是Python内置的标准模块,用于输出代码日志。一、logging模块简介在工作中,运行的代码量是非常大的,为了更方便的管理代码运行,监控代码运行的过程,需要在代码中添加一些必要的日志输出。Py......
  • 【python爬虫课程设计】大数据分析———不同车辆类型不同零件的城市道路油耗、高速公
    一、选题背景随着社会经济的发展和人们生活水平的提高,汽车已经成为现代化生活中不可或缺的交通工具之一。同时,环保意识的提高也给汽车产业带来了新的挑战,例如减少汽车的油耗和减少尾气排放。在这样的背景下,通过分析不同车辆类型的城市道路油耗、高速公路油耗和二氧化碳排放量数......
  • AI人工智能中的数学基础原理与Python实战:深度学习框架与数学基础
    1.背景介绍人工智能(ArtificialIntelligence,AI)和深度学习(DeepLearning,DL)是当今最热门的技术领域之一。它们在图像识别、自然语言处理、语音识别等方面的应用表现卓越,为人类提供了无尽的便利。然而,为了更好地理解和应用这些技术,我们需要掌握其数学基础原理。在本文中,我们将探讨......
  • AI人工智能中的数学基础原理与Python实战:强化学习与决策过程
    1.背景介绍人工智能(ArtificialIntelligence,AI)和机器学习(MachineLearning,ML)是现代科学和技术领域的热门话题。随着数据量的增加,计算能力的提升以及算法的创新,人工智能技术在各个领域的应用也逐渐成为可能。强化学习(ReinforcementLearning,RL)是一种人工智能技术,它旨在让计算......
  • Python+Appium自动化测试-元素定位工具
    三种定位工具:UiAutomatorViewerAndroidSDK自带工具location:AndroidSDK安装目录/tools也可以去github下载standalone版本注意:截屏时,当前模拟器不能被其他程序占用,比如在截屏时Weditor也连接了终端AppiumDesktopInspectorAppiumServer自带工具下载地址:https://github......
  • Python+Appium自动化测试环境搭建
    安装JDK并配置环境变量JAVA_HOMEPath验证命令:返回版本号说明配置成功java-version安装AndroidSdk并配置环境变量AndroidSDKTool下载地址:https://www.androiddevtools.cn详细完整版安装步骤:https://blog.csdn.net/qq877728715/article/details/133940938安......
  • python数据核对具体怎么做
    python数据核对思路:点击查看代码defautocheck(io_form,io_form2,io_to):importpandaaspddf_1=pd.read_excel(io_form)df_2=pd.read_excel(io_form2)result=pd.merge(df_1,df_2,on="姓名",how="outer",suffixes=('_1','_2&#......
  • 界面控件KendoReact的图表趋势线,可轻松可视化大量数据!
    当您在处理大量数据时很容易陷入困境,KendoReact图表趋势线使用一种全新的方式来处理这种情况!KendoUI是带有jQuery、Angular、React和Vue库的JavaScriptUI组件的最终集合,无论选择哪种JavaScript框架,都可以快速构建高性能响应式Web应用程序。通过可自定义的UI组件,KendoUI可以创......
  • 用DevExpress WPF Windows 10 UI组件,轻松构建触摸优先的业务型应用UX(上)
    DevExpressWPF的Windows10UI组件包含了一系列应用导航组件、Toast通知、对话框组件等,能帮助用户轻松开发漂亮的业务型应用程序,并模仿触摸优先的Windows10ProUX。P.S:DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress......