python实现电脑操控安卓手机

 更新时间:2021年05月21日 14:24:02   作者:JPX-NO  
网上虽然有很多教程,但是随着版本的更新总有各种各样的坑,本文以亲身踏坑经历介绍了电脑使用python操控安卓手机,从安装到使用方法,感兴趣的可以了解一下

一、电脑下载并安装SDK Platform Tools

在这里插入图片描述

在这里插入图片描述

下载后的文件:platform-tools_r30.0.4-windows.zip(大约12M)

接着解压文件到指定目录

在这里插入图片描述

解压后的路径与文件,接着为工具目录添加系统环境变量

在这里插入图片描述

验证安装结果

#执行命令
adb version

在这里插入图片描述

验证安装结果

手机连接电脑USB后执行adb devices 查看手机连接状态

查询已连接设备/模拟器:adb devices

此处连接手机,需要手机在开发者模式开启USB调试功能。顺便也开启模拟按键功能,后面会用到。

该命令经常出现以下问题:

offline —— 表示设备未连接成功或无响应;

device —— 设备已连接;

no device —— 没有设备/模拟器连接;

List of devices attached 设备/模拟器未连接到 adb 或无响应

简单获取手机屏幕坐标的方法

方法1、进入手机的开发者模式,打开在手机上实时显示坐标的功能,长按屏幕位置自动显示坐标

方法2、使用android adb shell命令获取

# 截屏到手机
adb shell screencap /sdcard/screen.png
# 将手机上刚才的截图上传到电脑
adb pull /sdcard/screen.png  /Users/Administrator/Desktop/screen.png

从原始图片上,使用PS扣出自己想要的局部图片,然后使用下面的代码获取局部图片在原始图片上的坐标
不会使用PS,可以直接使用截图在原始图片上截图,但是没PS精细。

import aircv as ac

# 根据图片在图片上查找坐标
# imgsrc=原始图像,imgobj=待查找的图片,confidence=设置匹配系数
def matchImg(imgsrc, imgobj, confidence=0.2):
    imsrc = ac.imread(imgsrc)
    imobj = ac.imread(imgobj)
    match_result = ac.find_all_template(imsrc, imobj, confidence)
    return match_result


if __name__ == '__main__':
    p = matchImg("C:\\Users\\Administrator\\Desktop\\screen.png", "C:\\Users\\Administrator\\Desktop\\daicha.png")
    print(p)

使用python操控手机

import os
import time


def execute(cmd):
    adbstr = 'adb shell {}'.format(cmd)
    print(adbstr)
    os.system(adbstr)


if __name__ == '__main__':

    while True:
        # 点击位置一
        execute("input tap 350 2200")
        time.sleep(3)
      
        # 点击位置二
        execute("input tap 970 135")
        time.sleep(5)

android adb shell 常用命令

android adb shell官方命令(英文)https://adbshell.com/

以下命令来源:

1.模拟点击

adb shell input tap 100 100

2.滑动

adb shell input swipe x1 y1 x2 y2 
adb input touchscreen swipe x1 y1 x2 y2 100

adb shell input swipe 100 100 400 100  300 #左往右
adb shell input swipe 400 100 100 100  300 #右往左
adb shell input swipe 100 100 100 400  300 #上往下
adb shell input swipe 100 400 100 100  300 #下往上
adb shell input swipe 100 100 400 400  300 #上往下斜
adb shell input swipe 400 400 100 100  300 #下往上斜

3.长按

adb shell input swipe 100 100 100 100  1000 //在 100 100 位置长按 1000毫秒

adb shell input swipe 367 469 367 469 800

4.打印所有包名

adb shell pm list packages

➜  ~ adb shell pm list packages
package:com.huawei.floatMms
package:com.android.defcontainer
package:com.tencent.mm

5.打印制定包的apk路径

adb shell pm path com.android.phone

➜  ~ adb shell pm path com.huawei.android.launcher
package:/system/app/HwLauncher6.apk

6.删除制定包

adb shell pm clear com.test.abc

7.截图

adb shell screencap /sdcard/screen.png
adb pull /sdcard/screen.png #下载到本地

8.获取被点击的位置信息

adb shell getevent

>
/dev/input/event0 3 39 3e1
/dev/input/event0 1 14a 1
/dev/input/event0 1 145 1
/dev/input/event0 3 35 406  //x坐标
/dev/input/event0 3 54 1083  //y坐标
/dev/input/event0 0 0 0
/dev/input/event0 3 39 ffffffff
/dev/input/event0 1 14a 0
/dev/input/event0 1 145 0
/dev/input/event0 0 0

getevent -l -c 16
输出所有event设备的基本信息

add device 1: /dev/input/event2
  name:     "hi6421_on"
could not get driver version for /dev/input/mouse0, Not a typewriter
add device 2: /dev/input/event4
  name:     "huawei,touchscreen"
add device 3: /dev/input/event0
  name:     "mhl_rcp_dev"
could not get driver version for /dev/input/mice, Not a typewriter
add device 4: /dev/input/event1
  name:     "hisi_gpio_key.14"
add device 5: /dev/input/event3
  name:     "hi3630_hi6401_CARD Headset Jack"

getevent -c 10 //输出10条信息后退出
getevent -l  //将type、code、value以对应的常量名称显示

9.打开对应的activity

adb shell am start -n {包(package)名}/{包名}.{活动(activity)名称}

adb shell am start com.songheng.eastnews/com.oa.eastfirst.activity.WelcomeActivity

10.获得当前活动窗口的信息,包名以及活动窗体

adb shell dumpsys window windows | grep mCurrent 

11.包名管理命令,获得对应包名的对应apk路径

adb shell pm  path com.migu.lobby

12.使用dumpsys命令可以查看Android手机当前正在运行的Activity

adb shell dumpsys activity activities | findstr "Run"

13.使用 uiautomator dump 获取app上的页面元素

adb shell uiautomator dump /data/local/tmp/uidump.xml
adb shell uiautomator dump /sdcard/dump.xml

14.下载文件

adb pull /sdcard/demo.mp4 

15.上传文件

adb push test.apk /sdcard

16.息屏

adb shell input keyevent 26

17.keyevent

adb shell input keyevent 20 #向下

adb shell input keyevent 4 #返回

adb shell input keyevent 3 #Home

adb shell input keyevent 6 #挂机

adb shell input keyevent 84 #搜索

adb shell input keyevent 26 #电源

adb shell input keyevent 24 #音量+

adb shell input keyevent 25 #音量-

18.输入框输入

adb shell input text "ANDROID"

19.利用无线来查看adb shell

> adb tcpip 5555

连接:
> adb connect IP:5555

20.查看所有已经连接上的设备

adb devices

21.安装卸载

adb install <apk文件路径>
adb install -r <apk文件路径>     通过install命令来安装apk文件,-r参数可以重新安装某个应用并保留应用数据

adb install -r ~/chrome.apk

卸载应用:
adb uninstall <软件名>
adb uninstall -k < 软件名>         如果加 -k 参数,为卸载软件但是保留配置和缓存文件

adb uninstall com.android.chrome

22.关机命令

adb shell
su
reboot -p

到此这篇关于python实现电脑操控安卓手机的文章就介绍到这了,更多相关python电脑操控手机内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python自动生成证件号的方法示例

    python自动生成证件号的方法示例

    这篇文章主要给大家介绍了关于python自动生成证件号的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 跟老齐学Python之使用Python操作数据库(1)

    跟老齐学Python之使用Python操作数据库(1)

    本文详细讲述了使用python操作数据库所需要了解的知识以及准备工作,十分的详尽,这里推荐给想学习python的小伙伴。
    2014-11-11
  • PyTorch中torch.matmul()函数常见用法总结

    PyTorch中torch.matmul()函数常见用法总结

    torch.matmul()也是一种类似于矩阵相乘操作的tensor连乘操作。但是它可以利用python中的广播机制,处理一些维度不同的tensor结构进行相乘操作,这篇文章主要介绍了PyTorch中torch.matmul()函数用法总结,需要的朋友可以参考下
    2023-04-04
  • python变量类型、输入、输出运算符介绍举例

    python变量类型、输入、输出运算符介绍举例

    Python是一种功能强大的编程语言,支持多种数据类型和运算符,它强调代码的可读性和简洁性,变量在Python中是动态类型的,不需要显式声明类型,这篇文章主要介绍了python变量类型、输入、输出运算符的相关资料,需要的朋友可以参考下
    2024-11-11
  • python 镜像环境搭建总结

    python 镜像环境搭建总结

    这篇文章主要介绍了python 镜像环境搭建总结,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • Python实现批量检测ip地址连通性

    Python实现批量检测ip地址连通性

    这篇文章主要为大家详细介绍了如何使用Python实现批量检测ip地址连通性并以json格式显示(支持传参单IP或者网段),感兴趣的小伙伴可以了解下
    2024-04-04
  • 教你如何使用Python下载B站视频的详细教程

    教你如何使用Python下载B站视频的详细教程

    这篇文章主要介绍了教你如何使用Python下载B站视频的详细教程,文中有非常详细的代码示例,对正在学习python的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • django利用request id便于定位及给日志加上request_id

    django利用request id便于定位及给日志加上request_id

    这篇文章主要介绍了django利用request id便于定位及给日志加上request_id的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用django具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2018-08-08
  • django admin后管定制-显示字段的实例

    django admin后管定制-显示字段的实例

    这篇文章主要介绍了django admin后管定制-显示字段的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • python计算一个序列的平均值的方法

    python计算一个序列的平均值的方法

    这篇文章主要介绍了python计算一个序列的平均值的方法,涉及Python递归遍历与数学计算的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07

最新评论