Python控制手机_能控制玩手机的软件

Python控制手机_能控制玩手机的软件1.配置Python环境变量Python环境变量安装较为简单,比较常用的方式是直接百度Anaconda并且下载安装,安装过程中可直接选择自动配置环境变量,在此不再赘述。2.安装Python编辑器,并在其中配置Python编辑器常用的是PyCharm,属于和IDEA一家公司的软件,这个软件对于学生有免费优惠,大学生可以直接去它官网申请,好像是需要一年一申,当然不缺钱的话也可以直接购买。3.安装控制包uiautomator2,和其它辅助包安装完后,想要控制手机,还需要安装…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1. 配置Python环境变量

Python环境变量安装较为简单,比较常用的方式是直接百度Anaconda并且下载安装,安装过程中可直接选择自动配置环境变量,在此不再赘述。

2. 安装Python编辑器,并在其中配置Python

编辑器常用的是PyCharm,属于和IDEA一家公司的软件,这个软件对于学生有免费优惠,大学生可以直接去它官网申请,好像是需要一年一申,当然不缺钱的话也可以直接购买。

3. 安装控制包uiautomator2,和其它辅助包

安装完后,想要控制手机,还需要安装一个Python包uiautomator2,直接使用命令行中的pip安装即可。
# GitHub地址:
# https://github.com/openatx/uiautomator2

pip install uiautomator2  # 这个包是用于控制手机
pip install pillow  # 这个包用于截图
pip install -U weditor  # 这个包是可以调试,在浏览器页面上直观的获取某个控件名称

4. 安装adb

adb全称叫做android调试桥(Android Debug Bridge),是Android官方谷歌公司开发的连接电脑与手机的插件,一般来说是包含在Android Studio之中下载的,当然我们在此处用不到Studio的其它功能,因此只下载adb包即可。

下载链接如下:

SDK Platform Tools 版本说明  |  Android 开发者  |  Android DevelopersAndroid SDK Platform-Tools 是 Android SDK 的一个组件。Python控制手机_能控制玩手机的软件https://developer.android.google.cn/studio/releases/platform-tools?hl=zh_cn这个链接下载的名称叫做Platform Tools,其中是包含adb工具的,其名称为adb.exe,与之相关的还有几个以ADB开头名称的文件。将此压缩包解压之后,放在系统的任意位置,然后将此位置加入Path环境变量即可。这样我们就可以在系统的任意位置调用到此exe文件。

5. adb调用

将手机通过USB数据线连接至电脑,打开开发者模式,并开启USB调试,并且开启允许电脑通过USB向手机安装软件等权限。接收电脑发来的链接秘钥并链接。

(使用Python包uiautomator2控制手机时,需要在手机上安装app)

在电脑中使用WIN+R弹出运行框,在框内输入cmd调用命令行窗口。在窗口中输入如下命令:

adb devices

窗口会打印当前USB所连接的手机信息,如果没有手机连接,将会显示如下信息,这时需要检查手机连接的USB线是否正常,并且检查开发者模式是否打开等等。当然如果直接报错找不到adb命令,则需要检查adb相关配置是否完成。

C:\Users\Administrator>adb devices
List of devices attached


C:\Users\Administrator>|

如果完全正常,且手机已经链接,则将会显示如下信息:

C:\Users\Administrator>adb devices
List of devices attached
9phqaetw        device
afdsaf4         device


C:\Users\Administrator>|

在List of devices attached这一行之后,有几行信息,便说明已经有几个设备已经链接到ADB调试桥,而在每一行开头,device之前的那一串字符串,便是设备的标志码。通过设备的标志码,我们就可以链接到指定的设备,当然如果本台电脑上只链接有一块手机,此标志码可以不记,如果链接有多块手机,则需要记录每一个标志码,以及标志码对应的实际手机设备。

如果不知道哪个标志码对应哪台设备,则可以将其中一个USB拔出,再输入命令,反复查看,以此确认标志码与设备之间一一对应的关系。

6、设备安装ATX

在命令行执行如下命令,在手机上安装ATX软件。如果手机上没有安装此APP,uiautomator2将无法控制手机。

python -m uiautomator2 init

7. 编写Python代码进行控制手机

比较简单的控制方式是:

# 引用uiautomator2包
import uiautomator2 as u2

# 使用设备唯一标志码链接设备,其中9phqaetw是通过adb获取的设备标志码
d = u2.connect('9phqaetw')  
# d = u2.connect()  # 当前只有一个设备时可以用这个


d.unlock()  # 解锁屏幕

x,y = 100,100
d.click(x,y)  # 点击屏幕坐标为 x,y 的点

# 双击屏幕
d.double_click(x,y)

# 长按
d.long_click(x,y)

# 单机屏幕上字符为9的控件
d(text="9").click()

例如我们写一个比较简单的解锁屏幕代码,假设锁屏密码是486570:

# 引用uiautomator2包
import uiautomator2 as u2
import time

# 使用设备唯一标志码链接设备,其中9phqaetw是通过adb获取的设备标志码
d = u2.connect('9phqaetw')  
# d = u2.connect()  # 当前只有一个设备时可以用这个


d.unlock()  # 解锁屏幕
time.sleep(2)  # 等待手机反应2秒钟

# 锁屏密码
password = "486570"

# 输入锁屏密码
for c in password:
    d(text=c).click()
    time.sleep(0.3)  # 间隔0.3秒单击一次屏幕

8. 更多使用方式

上述代码运行成功后,基本上就可以控制手机了。uiautomator2具备较多功能,在此不再赘述,百度具有较多资料。

9. weditor调试工具

weditor用于查看手机当前状态、用浏览器控制手机、调试手机,还可以实时的查找控件中的text属性以及其它属性值等等。

第一种打开方式是在命令窗口输入:

python -m weditor

第二种方式是在桌面创建快捷方式,在命令窗口输入:

weditor --shortcut

在桌面会自动创建一个名为WEditor的图标,双击即可。

打开weditor后会出现一个信息调试框,并且会自动打开默认浏览器跳转至调试页面,关闭调试框和浏览器页面其中任一个,weditor即被关闭。注意如果默认浏览器为IE的话,不知道支持与否,或可自行尝试。调试页面如下图所示:

Python控制手机_能控制玩手机的软件

在顶部可以切换静态调试还是实时,如果是实时情况下,则会跟随手机进行实时界面切换。

最左侧为手机界面;中间根据点选屏幕空间的不同,显示不同的控件属性;最右侧可使用Python代码进行书写和调试。 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169900.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月12日 下午3:36
下一篇 2022年8月12日 下午3:36


相关推荐

  • golang go语言 反向 websocket 代理演示代码

    golang go语言 反向 websocket 代理演示代码golanggo语言反向websocket代理演示代码通过go语言实现websocket反向代理功能packagemainimport( “fmt” “github.com/fasthttp/websocket” “github.com/valyala/fasthttp” proxy”github.com/yeqown/fasthttp-reverse-proxy” “log”)varupgraders=&websocket.FastHTTPUpgrad

    2022年7月26日
    25
  • explain mysql怎么用_mysql中explain用法详解

    explain mysql怎么用_mysql中explain用法详解EXPLAIN 用于 SELECT 语句中的每个表返回一行信息 表以它们在处理查询过程中将被 MySQL 读入的顺序被列出如果在 select 语句前放上关键词 explain mysql 将解释它如何处理 select 提供有关表如何联接和联接的次序 explain 的每个输出行提供一个表的相关信息 并且每个行包括下面的列 1 idselect 识别符 这是 select 的查询序列号 2 select type 可

    2026年3月18日
    1
  • linux中的ldd命令简介

    linux中的ldd命令简介在linux中,有些命令是大家通用的,比如ls,rm,mv,cp等等,这些我觉得没有必要再细说了。而有些命令,只有开发人员才会用到的,这类命令,作为程序员的我们,是有必要了解的,有的甚至需要熟练使用。有的人总说,这些命令不重要,用的时候去查就行了,这么多么扯淡的说法啊。具体用法细节是可以可查,但至少得知道有ldd这个东西吧。连ldd都不知道,怎么知道ldd是干啥的呢?

    2022年4月28日
    79
  • SQL清空表数据表

    SQL清空表数据表SQL清空表数据表并使得自增ID从1重新开始计数truncatetabletable_name

    2022年6月11日
    25
  • 独家|上轮才过几周,Kimi开启新一轮融资!估值直冲48亿美元,机构正疯狂“抢配”月之暗面

    独家|上轮才过几周,Kimi开启新一轮融资!估值直冲48亿美元,机构正疯狂“抢配”月之暗面

    2026年3月12日
    2
  • 线性反馈移位寄存器(Linear Feedback Shift Register, LFSR)

    线性反馈移位寄存器(Linear Feedback Shift Register, LFSR)线性反馈移位寄存器 LFSR 通常由移位寄存器和异或门逻辑组成 其主要应用在 伪随机数 伪噪声序列 计数器 BIST 数据的加密和 CRC 校验等 线性反馈移位寄存器 LFSR 主要包括两大类伽罗瓦 内部 LFSR 又称 one to many 斐波那契 外部 LFSR 又称 many to one 其中 gn 为反馈系数 取值只能为 0 或 1 取为 0 时表明不存在该反馈之路 取为 1 时表明存在该

    2026年3月18日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号