简单又实用的高级技巧,带你深入了解Python自动化控制手机
off999 2024-10-14 12:16 33 浏览 0 评论
大家好,我是皮皮,今天给大家讲讲ADB操作。
前面给大家分享了Airtest,感兴趣的小伙伴,可以前往:手机自动化测试IDE-----Airtest实战篇、手机自动化测试IDE ----- 手把手教你用Airtest模拟器来连接手机、手机自动化测试IDE-----Airtest基本操作方法、手机自动化测试IDE ----- Airtest的安装和IDE控件详解,任君挑选。
私信小编01即可获取大量python学习资源
前言
ADB,中文名安卓调试桥,它是一种功能多样的命令行工具,可用于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件:
客户端:用于发送命令。客户端在开发计算机上运行。您可以通过发出 ADB命令来从命令行终端调用客户端。
守护进程:在设备上运行命令。守护进程在每个设备上作为后台进程运行。
服务器:管理客户端和守护进程之间的通信。服务器在开发机器上作为后台进程运行。
通过这个命令行工具我们可以使用它来操作手机上的资源,而且不需要借助Android SDK就可以轻松操控手机里的应用。
一、工作原理
当您启动某个ADB客户端时,客户端会先检查是否有 ADB服务器进程正在运行。如果没有,它将启动服务器进程。服务器在启动后会与本地 TCP 端口 5037 绑定,并监听 ADB 客户端发出的命令 - 所有 ADB客户端均通过端口 5037 与 ADB 服务器通信。
然后,服务器会与所有正在运行的设备建立连接。它通过扫描 5555 到 5585 之间(该范围供前 16 个模拟器使用)的奇数号端口查找模拟器。服务器一旦发现ADB守护进程 (ADBD),便会与相应的端口建立连接。请注意,每个模拟器都使用一对按顺序排列的端口 - 用于控制台连接的偶数号端口和用于ADB 连接的奇数号端口。
二、下载ADB
这里小编已经给大家准备好了,下载地址:
https://u062.com/file/7715018-452566390 ,
如果你想在任何文件目录使用ADB的话,必须把ADB的安装目录加入环境变量,然后我们可以使用ADB的界面工具,它可以很直观方便的执行ADB的命令并显示结果,
这个工具就是APKInstaller,下载地址: https://u062.com/file/7715018-452566398 ,如图:
三、基本操作
1.设备的启动关闭操作
这里我选择连接模拟器,看看连接有什么区别。
1).连接设备
adb connect 127.0.0.1:62001#连接一个模拟器2).启动服务
adb start-server#开启服务3).查看设备
adb devices #查看设备信息
adb version #设备版本
adb help #帮助文档
adb get-state #查看设备状态 device(正常连接),offline(连接异常),unknown(没有连接)
adb get-serialno #获取序列号
adb get-devpath #获取设备路径
adb shell cat /system/build.prop #获取设备名称4).操作多个设备
adb —a 监听所有网络接口,而不仅仅是localhost
-d 使用USB设备(如果多个设备连接错误)
-e 使用TCP / IP设备(如果可用多个TCP / IP设备错误)
-s 使用给定的序列号(覆盖ANDROID_SERIAL)
-t 使用给定设备ID
-h adb服务器主机名称(默认= localhost)
-p adb服务器的端口(默认= 5037)
-l 监听来自套接字的adb服务器(默认= tcp: localhost: 5037)
例如:adb -s 127.0.0.1:62001 shell这样我们呢就进入了模拟器的Shell界面了。
5).关闭服务
adb kill-server6).设置监听TCP/IP的端口
adb tcpip 55557).断开连接
adb disconnect 127.0.0.1:620018).关机与重启
adb reboot #设备重启
adb shutdown #设备关机9).Root权限
adb root # 正常输出:restarting adbd as root
adb unroot # 取消root权限10).刷机模式
adb reboot bootloader #重启到bootloader,即刷机模式
adb reboot recovery #重启到recovery,即恢复模式
adb sideload <path-to-update.zip>#更新系统11).命令转载
adb wait-for-device # 在模拟器/设备连接之前把命令转载在adb的命令器中2.设备应用操作
1).查看应用
adb shell pm list packages #所有应用
adb shell pm list package -f #
adb shell pm list packages -s #系统应用
adb shell pm list packages -3 #三方应用
adb shell pm list packages | findstr bluetooth #过滤应用 管道符进行搜索,Linux下使用grep2).查看应用的Activity信息
adb shell dumpsys package com.android.bluetooth #查看系统应用蓝牙的包名信息
adb shell dumpsys activity activities #查看所有的活动程序包名
adb shell dumpsys activity | findstr mFocusedActivity #查看当前重启的是哪个包
adb shell dumpsys activity top | findstr activity #查找设备活动程序的父窗口3).清除应用数据和缓存
adb shell pm clear3.安装卸载应用
adb install D:/aa.apk #安装在电脑上的apk
adb install -r D:/aa.apk#覆盖安装 保留数据和缓存文件 -g 授予所有运行时权限
adb shell pm install /scard/picture#安装在手机上的apk
adb uninstall -k 包名
在模拟器或者真机中需要使用 -s来指定4.日志
adb logcat#查看日志
adb logcat -v time #打印详情日志,会记录当前的所有操作行为以及产生的结果,默认持续监听,按下Ctrl+c即可结束
adb logcat -v time >D:\log.txt #保存日志到电脑
adb logcat -f /sdcard/1.txt #保存日志到手机
adb logcat | findstr com.android.bluetooth #保存指定包名的日志
adb logcat -c #清除之前的日志输出
adb logcat | findstr ActivityManager #查看当前正在运行的Activity
adb logcat | findstr Displayed #查看当前正在运行的Activity
adb bugreport #查看bug报告
adb logcat -b radio #无线通讯的日志
adb shell dmesg #内核日志5.设备文件操作
#把电脑上的文件传到手机储存卡中
adb push C:\Users\Administrator\Desktop\1.gif /sdcard/
#把手机存储卡里的文件传到电脑
adb pull /sdcard/1.gif C:\Users\Administrator\Desktop\6.截屏,录屏
adb shell screencap /sdcard/1.png #当前窗口截屏保存到手机
adb shell /system/bin/screencap -p /sdcard/2.png
adb exec-out screencap -p >1.png #截图保存到电脑
adb shell screenrecord >1.mp4 #屏幕录像,Ctrl+c停止录制
--size #视频大小
--bit-rate #比特率
--time-limit #持续时间
--verbose #命令行显示log信息
注:模拟器和安卓4.4以下版本不支持录屏7.Shell
Shell里有很多命令,我们简单列举下:
命令功能
cat显示文件内容
cd切换目录
chmod改变文件的存取模式/访问权限
df查看磁盘空间使用情况
grep过滤输出
kill杀死指定 PID 的进程
ls列举目录内容
mount挂载目录的查看和管理
mv移动或重命名文件
ps查看正在运行的进程
rm删除文件
top查看进程的资源占用情况
1).进入退出
adb shell #进入shell 返回$ 则没有root权限 #有root权限
exit #退出shell2).设备的相关信息
adb shell getprop ro.build.version.release #安卓系统版本
adb shell getprop ro.product.model #查看设备型号
adb shell cat /sys/class/net/wlan0/address #查看MAC地址
adb shell wm size #设备屏幕分辨率
adb shell wm size 400X654 #设置屏幕分辨率
adb shell wm size reset #恢复原屏幕分辨率
adb shell wm density #设备屏幕密度
adb shell wm density 100 #修改屏幕密度为100dpi
adb shell wm density reset #恢复原屏幕密度
adb shell wm overscan 10,20,30,100 #显示区域
adb shell wm overscan reset #恢复原显示区域
adb shell dumpsys window displays #显示屏参数
adb shell service list #查看后台services信息
adb shell settings put global adb_enabled 0 #关闭 USB 调试模式
adb shell uiautomator dump #获取当前界面的控件信息
adb shell ime list -s #设备上的输入法3).进程
adb shell ps #查看手机正在运行的进程 adb shell ps | findstr bluetooth
adb shell ps -x pid #查看指定pid的进程状态信息
adb shell kill pid #根据进程号杀进程
adb shell procrank #杀进程
adb shell start adbd #启动守护进程
adb shell stop adbd #关闭守护进程4).性能分析
adb shell cat /proc/cpuinfo #获取CPU序列号
adb shell cat /proc/meminfo #查看当前内存占用
adb shell cat /proc/iomem #查看IO内存分区
adb remount #将system分区重新挂载为可读写分区
adb shell dumpsys meminfo bluetooth #查看蓝牙占用的内存
adb shell dumpsys cpuinfo | findstr bluetooth #获取CPU
adb shell top #查看实时资源占用情况
adb shell top -n 1 | findstr bluetooth #刷新一次内存信息,然后返回蓝牙内存占用
adb shell top #查看设备cpu和内存占用情况
adb shell top -m 6 #查看占用内存前6的app
adb shell dumpsys gfxinfo bluetooth #获取流畅度相关
adb shell netcfg #查看设备的网络连接情况
adb shell ifconfig wlan0 #获取wlan0的IP地址和子网掩码5).文件操作
adb shell ls #列出目录下的文件和文件夹
adb shell cd sys #切换当前目录为sys
adb shell rename 旧文件名 新文件名 #重命名文件名
adb shell rm /sys/1.apk #删除指定目录下的文件
adb shell rm -r #删除指定目录下的文件夹及其子目录
adb shell mv 旧文件名 新文件名 #移动文件
adb shell chmod 777 1.jpg #设置文件权限
adb shell mkdir 文件夹名 #新建文件夹
adb shell cat 文件 #查看文件内容
adb shell cat /data/misc/wifi/*.conf #查看WiFi密码6).按键
adb shell input keyevent 3 # HOME 键
adb shell input keyevent 4 # 返回键
adb shell input keyevent 5 # 拨号
adb shell input keyevent 6 # 挂断
adb shell input keyevent 24 # 音量+
adb shell input keyevent 25 # 音量-
adb shell input keyevent 26 # 电源键
adb shell input keyevent 27 # 拍照
adb shell input keyevent 64 # 打开浏览器
adb shell input keyevent 82 # 菜单键
adb shell input keyevent 85 # 播放/暂停
adb shell input keyevent 86 # 停止播放
adb shell input keyevent 87 # 播放下一首
adb shell input keyevent 88 # 播放上一首
adb shell input keyevent 122 #移动光标到行首或列表顶部
adb shell input keyevent 123 #移动光标到行尾或列表底部
adb shell input keyevent 126 # 恢复播放
adb shell input keyevent 127 # 暂停播放
adb shell input keyevent 164 # 静音
adb shell input keyevent 176 # 打开系统设置
adb shell input keyevent 187 # 切换应用
adb shell input keyevent 207 # 打开联系人
adb shell input keyevent 208 # 打开日历
adb shell input keyevent 209 # 打开音乐
adb shell input keyevent 210 # 打开计算器
adb shell input keyevent 220 # 降低屏幕亮度
adb shell input keyevent 221 # 提高屏幕亮度
adb shell input keyevent 223 # 休眠
adb shell input keyevent 224 # 点亮屏幕
adb shell input keyevent 231 # 打开语音助手
adb shell input keyevent 276 # 如果没有 wakelock 则让系统休眠7).点击,滑动屏幕
adb shell input tap 100 300 #在(100,300)处点击
adb shell input swipe 100 1200 100 200 #上滑
adb shell input swipe 100 200 100 1200 #下滑8).输入
adb shell input text hello #输入hello9).电池
adb shell dumpsys battery10).设备ID
adb shell settings get secure android_id11).无线网络
在操作前必须获得Root权限。
adb shell svc wifi enable #开启WiFi
adb shell svc wifi disable #关闭WiFi8.端口转发
adb forward tcp:60 tcp:70 #将60端口转到70端口
adb forward tcp:60 local:logd # 将60端口转到local:logd的转发9.Activity 管理器
adb shell am start -n activity路径 #启动某一个activity
adb shell am start -a android.intent.action.VIEW -d www.baidu.com#启动默认浏览器打开一个网页
adb shell am start -n com.android.camera/.Camera #启动相机
adb shell am start -a android.intent.action.CALL -d tel:10086#启动拨号10086
adb shell am startservice -n 服务 #开启服务
adb shell am stopservice 服务 #停止服务
adb shell am force-stop bluetooth #杀死蓝牙进程
adb shell am kill 进程号 #杀掉进程
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED #向所有组件广播设备启动完毕10.调用软件包管理器
adb shell pm list permissions #查看权限
adb shell pm list permission-groups #输出所有已知的权限组
adb shell pm list permissions -d -g -f #查看系统危险权限并按组输出所有信息
adb shell pm list instrumentation#列出所有测试软件包,-f列出测试软件包的APK文件
adb shell pm path com.android.bluetooth #查看软件安装路径
adb shell pm list features #输出系统的所有功能
adb shell pm list libraries #输出当前设备支持的所有库
adb shell pm list users #输出系统中的所有用户
adb shell pm enable ** #启用给定的软件包或组件(写为“package/class”)
adb shell pm disable ** #停用给定的软件包或组件(写为“package/class”)
adb shell pm get-max-users #输出设备支持的最大用户数11.备份
adb backup -all #备份所有数据12.压力测试Monkey
格式:adb shell monkey -v -p your.package.name 500
adb shell monkey -v -p com.tencent.weishi 500四、总结
以上就是ADB的全部内容了,通过对ADB的了解我相信大家应该能通过Python编程做一个简易版的自动化工具了,不再依靠Airtest。
相关推荐
- 戴尔官网保修查询入口(戴尔售后保质期查询)
-
可以按照以下步骤查询戴尔笔记本电脑的保修期:1.打开戴尔官网:https://www.戴尔.com/zh-cn/售后服务/保修政策.html2.点击页面上方的“服务与支持”按钮,进入戴尔的服务支持...
- 手机号邮箱登录入口(手机号邮箱官网)
-
手机163邮箱登录入口如下:163邮箱官网入口:https://smart.mail.163.com/login.htm点击进入登录或者注册邮箱即可。手机浏览器访问进入官网http://www.123...
- sd卡(sd卡无法读取怎么修复)
-
SD卡是大卡,相机用的;普通的手机内存卡,是小卡,正规的名称是macrosd卡,也就是微型SD卡。可以通过卡套转为普通的SD卡的大小。 其实就是大小不同。但手机上的内存卡,人们经常也俗称为SD...
- windows7蓝牙功能在哪里打开
-
点击搜索框在windows7系统主界面点击开始菜单,点击打开搜索框。输入命令输入services.msc后回车,在列表中找到并右击BluetoothSupportS...点击属性选择进入属性菜单,...
-
- 2010激活密钥(microsoft2010激活密钥)
-
步骤/方式1officeprofessionalplus2010:(office专业版)6QFdx-pYH2G-ppYFd-C7RJM-BBKQ8Bdd3G-xM7FB-Bd2HM-YK63V-VQFdKVYBBJ-TRJpB-QFQ...
-
2025-11-19 04:03 off999
- 联想官方刷新bios工具(联想电脑刷新bios)
-
刷新BIOS需要使用联想的官方网站或授权维修中心来进行操作。以下是一些基本步骤:1.访问联想的官方网站,找到BIOS更新程序并下载。在下载过程中,请确保选择与您计算机型号匹配的版本。2.将下载的B...
-
- 苹果ios14系统下载(苹果ios14.1下载)
-
1方法一步骤/方式一打开Appstore。步骤/方式二在搜索栏点击搜索框。步骤/方式三搜索并点击需要下载的软件。步骤/方式四点击获取。步骤/方式五最后验证ID密码即可。1.在应用商店搜索你要下载的应用名称。2.点击下载按钮,如果要求登...
-
2025-11-19 03:03 off999
- office2010怎么免费永久激活密钥
-
用这个试试,一个KMS激活工具可以激活2010到2019的Office自家的目前用的就是这个microsoft6477.moe/1716.html直接使用这个Microsoftoffice2010...
-
- 类似爱加速的国内ip(类似爱加速的app)
-
推荐“V8盒子”。这一款免费无广告的模拟器,不同于其它软件盒子,而是类似于X8沙箱,满足游戏多开,画中画,悬浮球操作,熄屏后台运行等多功能的沙箱盒子.支持一键root,一键安装xposed框架,能在安卓/苹果手机上运行多个安卓/ios虚拟系...
-
2025-11-19 02:03 off999
- 阿里旺旺手机客户端(阿里旺旺手机app)
-
手机淘宝的旺旺在打开商品后,会看到左下角有个旺旺的图标,点击就可以联系了。 阿里旺旺是将原先的淘宝旺旺与阿里巴巴贸易通整合在一起的一个新品牌。它是淘宝和阿里巴巴为商人量身定做的免费网上商务沟通软件,...
- 最纯净的pe装机工具(pe工具哪个纯净)
-
U盘装系统步骤:1.制作U盘启动盘。这里推荐大白菜U盘启动盘制作工具,在网上一搜便是。2.U盘启动盘做好了,我们还需要一个GHOST文件,可以从网上下载一个ghost版的XP/WIN7/WIN8系统,...
- 装一个erp系统多少钱(wms仓库管理软件)
-
现在主流有客户端ERP和云端ERP两种客户端通常一次买断,价格在万元左右,但是还有隐性费用,你需要支付服务器、数据管理员,此外如果系统需要更新维护,你还需要支付另外一笔不菲的费用。云端ERP:优势...
- cad2014序列号和密钥永久(autocad2014序列号和密钥)
-
1在cad2014中修改标注样式后,需要将其保存2单击“样式管理器”按钮,在弹出的窗口中选择修改后的标注样式,然后单击“设置为当前”按钮,再单击“保存当前样式”按钮,将其保存为新的样式名称3为了...
- qq修改密保手机号(qq修改密保手机号是什么意思)
-
QQ更改绑定的手机号码操作步骤如下:1、打开手机主界面,找到“QQ”软件点击打开。2、输入正确的QQ账户和密码登录到qq主界面。3、点击左上角的头像“图片”,进入到个人中心界面。4、进入到个人中心界面...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
慕ke 前端工程师2024「完整」
-
失业程序员复习python笔记——条件与循环
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
