千家信息网

Python编程的简易版自动化工具ADB的工作原理以及用法

发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,本篇文章为大家展示了Python编程的简易版自动化工具ADB的工作原理以及用法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前言ADB,中文名安卓调试桥,它是
千家信息网最后更新 2025年02月23日Python编程的简易版自动化工具ADB的工作原理以及用法

本篇文章为大家展示了Python编程的简易版自动化工具ADB的工作原理以及用法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

前言

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-server

6).设置监听TCP/IP的端口

adb tcpip 5555

7).断开连接

adb disconnect 127.0.0.1:62001

8).关机与重启

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 #更新系统

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下使用grep

2).查看应用的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 clear

3.安装卸载应用

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 #退出shell

2).设备的相关信息

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  #输入hello

9).电池

adb shell dumpsys battery

10).设备ID

adb shell settings get secure android_id

11).无线网络

在操作前必须获得Root权限。

adb shell svc wifi enable  #开启WiFi adb shell svc wifi disable #关闭WiFi

8.端口转发

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。

上述内容就是Python编程的简易版自动化工具ADB的工作原理以及用法,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

设备 文件 进程 服务 命令 端口 应用 服务器 权限 运行 屏幕 信息 客户 客户端 日志 模拟器 目录 系统 输出 工具 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州未来网络技术有限公司 软件开发内存多少最合适 西宁服务器回收 选择服务器主机需要注意什么 活码软件开发 vb判断是否连接数据库 数据库转存sql怎么打开 下列不会有网络安全隐患的 数据库专业编号 浙江型材套料软件开发商 学网络技术考多少分数能考上大学 cms服务器远程管理 p6如何建立新数据库 上汽集团招聘软件开发工程师 软件开发stp报告怎么写 数字工厂大数据库 国家网络安全的守卫者 嘉峪关云存储服务器 dbms软件属于数据库的组成 洛阳北大青鸟软件开发学费 腾讯微信服务器在哪儿 长宁区网络技术服务质量保证 扬州久光软件开发有限公司 局域网 设置代理服务器 数据库实验第二部分百度文库 描述软件开发过程要求 台州品牌网络技术优势 科技 互联网反腐败 定向士官计算机网络技术好就业吗 系统网络技术中计算作业总时差
0