大家好,我是皮皮,今天给大家讲讲ADB操作。
前面给大家分享了Airtest,感兴趣的小伙伴,可以前往:手机自动化测试IDE—–Airtest实战篇、手机自动化测试IDE —– 手把手教你用Airtest模拟器来连接手机、手机自动化测试IDE—–Airtest基本操作方法、手机自动化测试IDE —– Airtest的安装和IDE控件详解,任君挑选。
前言
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
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
adb unroot
10).刷机模式
adb reboot bootloader
adb reboot recovery
adb sideload <path-to-update.zip>
11).命令转载
adb wait-for-device
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
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
adb install -r D:/aa.apk
adb shell pm install /scard/picture
adb uninstall -k 包名
在模拟器或者真机中需要使用 -s来指定
4.日志
adb logcat
adb logcat -v time
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
adb logcat | findstr Displayed
adb bugreport
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
--size
--bit-rate
--time-limit
--verbose
注:模拟器和安卓4.4以下版本不支持录屏
7.Shell
Shell里有很多命令,我们简单列举下:
命令
|
功能
|
cat
|
显示文件内容
|
cd
|
切换目录
|
chmod
|
改变文件的存取模式/访问权限
|
df
|
查看磁盘空间使用情况
|
grep
|
过滤输出
|
kill
|
杀死指定 PID 的进程
|
ls
|
列举目录内容
|
mount
|
挂载目录的查看和管理
|
mv
|
移动或重命名文件
|
ps
|
查看正在运行的进程
|
rm
|
删除文件
|
top
|
查看进程的资源占用情况
|
1).进入退出
adb shell
exit
2).设备的相关信息
adb shell getprop ro.build.version.release
adb shell getprop ro.product.model
adb shell cat /sys/class/net/wlan0/address
adb shell wm size
adb shell wm size 400X654
adb shell wm size reset
adb shell wm density
adb shell wm density 100
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
adb shell settings put global adb_enabled 0
adb shell uiautomator dump
adb shell ime list -s
3).进程
adb shell ps
adb shell ps -x pid
adb shell kill pid
adb shell procrank
adb shell start adbd
adb shell stop adbd
4).性能分析
adb shell cat /proc/cpuinfo
adb shell cat /proc/meminfo
adb shell cat /proc/iomem
adb remount
adb shell dumpsys meminfo bluetooth
adb shell dumpsys cpuinfo | findstr bluetooth
adb shell top
adb shell top -n 1 | findstr bluetooth
adb shell top
adb shell top -m 6
adb shell dumpsys gfxinfo bluetooth
adb shell netcfg
adb shell ifconfig wlan0
5).文件操作
adb shell ls
adb shell cd 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
6).按键
adb shell input keyevent 3
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
7).点击,滑动屏幕
adb shell input tap 100 300
adb shell input swipe 100 1200 100 200
adb shell input swipe 100 200 100 1200
8).输入
adb shell input text hello
9).电池
adb shell dumpsys battery
10).设备ID
adb shell settings get secure android_id
11).无线网络
在操作前必须获得Root权限。
adb shell svc wifi enable
adb shell svc wifi disable
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路径
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
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
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 **
adb shell pm disable **
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。