Android 调试桥 (adb)

目录

常用指令

启动adb

停止adb

查看adb版本

查看已连接设备的列表(devices)

将命令发送至指定设备(有多个设备在运行,您在发出 adb 命令时必须指定目标设备)

安装应用(install)

移除软件包(uninstall)

将文件复制到设备或从设备复制文件(pull、push)

Activity管理器 (am)

启动指定activity

停止应用,强行停止指定包名应用关联的所有进程

启动指定的Service

发出指定广播

软件包管理器(pm)

查询设备安装应用的包名

查看应用apk的路径(path)

截取屏幕-截图(screencap)

录制视频(screenrecord)

查看设备型号

屏幕分辨率

屏幕密度

显示屏参数

查看android_id

系统版本号

IP地址

Mac地址

CPU信息

内存信息

重启设备

查看链接过的wifi密码

查看设备是否已有root

使用Monkey进行压力测试


adb即Android Debug Bridge,它是Android开发/测试人员不可替代的强大工具

下载: 链接:https://pan.baidu.com/s/1UF7n__CEr03_3zdwPe-Zsw 提取码:ksfi 

连接方式:USB连接以及网络连接:参考:https://blog.csdn.net/h_bpdwn/article/details/106712752

常用指令

启动adb

adb start-server

停止adb

adb kill-server

查看adb版本

adb version

查看已连接设备的列表(devices)

adb devcies -l

作为回应,adb 会针对每个设备输出以下状态信息:
序列号:由 adb 创建的字符串,用于通过端口号唯一标识设备。 下面是一个序列号示例:LNGNWZU13Q
状态:设备的连接状态可以是以下几项之一:
    offline:设备未连接到 adb 或没有响应。
    device:设备现已连接到 adb 服务器。请注意,此状态并不表示 Android 系统已完全启动并可正常运行, 
            因为在设备连接到 adb 时系统仍在启动。不过,在启动后,这将是设备的正常运行状态。
    no device:未连接任何设备。
说明:如果您包含 -l 选项,devices 命令会告知您设备是什么。当您连接了多个设备时,此信息很有用,可帮助您将它们区分开来。

example:
D:\>adb devices -l
List of devices attached
LNGNWZU13Q             device product:rk3288 model:rk3288 device:rk3288 transport_id:12
192.168.9.9:5555       device product:rk3288 model:rk3288 device:rk3288 transport_id:11

将命令发送至指定设备(有多个设备在运行,您在发出 adb 命令时必须指定目标设备)

adb -s [序列号] <命令>
adb -s LNGNWZU13Q shell

example:
D:\>adb devices
List of devices attached
LNGNWZU13Q      device
192.168.9.9:5555        device

D:\>adb shell
adb.exe: more than one device/emulator

D:\>adb -s LNGNWZU13Q shell
rk3288:/ #

安装应用(install)

adb install [options] [待安装apk的路径]
-r  重新安装现有应用,保留其数据
-g  授予应用清单中列出的所有权限

移除软件包(uninstall)

adb uninstall [package]


adb shell pm uninstall [options] [package]
options:
-k   移除软件包后保留数据和缓存目录

将文件复制到设备或从设备复制文件(pull、push)

将文件从设备复制到PC端
adb pull [remote] [local]

将文件从PC端复制到设备
adb push [local] [remote]

(remote:PC端文件路径   local:设备端文件路径)
example:
D:\>adb push test.txt /mnt/sdcard/
test.txt: 1 file pushed, 0 skipped. 0.0 MB/s (30 bytes in 0.082s)

D:\>adb pull /mnt/sdcard/test.txt ./test.txtbak
/mnt/sdcard/test.txt: 1 file pulled, 0 skipped. 0.0 MB/s (30 bytes in 0.005s)

Activity管理器 (am)

启动指定activity

adb shell am start [activity的详细路径(包名+activity)]

example
D:\>adb shell am start com.hww.testface/.MainActivity
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.hww.testface/.MainActivity }

//类名是区分大小写的

停止应用,强行停止指定包名应用关联的所有进程

adb shell am force-stop [应用包名]

example
D:\>adb shell am force-stop com.hww.testface

启动指定的Service

adb shell am startservice [service的详细路径(包名+服务类名)]

发出指定广播

adb shell am broadcast [广播指令]

软件包管理器(pm)

查询设备安装应用的包名

adb shell pm list package [options]  [filter]

filter : 过滤,仅输出软件包名称包含filter中的文本的软件包
options : 选项
-f:查看它们的关联文件。
-d:进行过滤以仅显示已停用的软件包。
-e:进行过滤以仅显示已启用的软件包。
-s:进行过滤以仅显示系统软件包。
-3:进行过滤以仅显示第三方软件包。
-i:查看软件包的安装程序。
-u:也包括已卸载的软件包。

example:
D:\>adb shell pm list package -f com.google
package:/data/app/com.google.android.tts-1/base.apk=com.google.android.tts

查看应用apk的路径(path)

adb shell pm path [package]

example:
D:\>adb shell pm path com.hww.testface
package:/data/app/com.hww.testface-1/base.apk

截取屏幕-截图(screencap)

adb shell screencap /mnt/sdcard/screen.png

example:
D:\>adb shell screencap /mnt/sdcard/screen001.png

录制视频(screenrecord)

screenrecord 命令是一个用于录制设备(搭载 Android 4.4(API 级别 19)及更高版本)显示屏的 shell 实用程序。该实用程序将屏幕 Activity 录制为 MPEG-4 文件。

adb shell screenrecord [filename]

example : 
D:\>adb shell screenrecord /mnt/sdcard/record.mp4

按 Ctrl + C 键(在 Mac 上,按 Command + C 键)可停止屏幕录制;如果不手动停止,到三分钟或 --time-limit 设置的时间限制时,录制将会自动停止。


screenrecord 实用程序的局限性:
音频不与视频文件一起录制。
无法在搭载 Wear OS 的设备上录制视频。
某些设备可能无法以它们的本机显示分辨率进行录制。如果在录制屏幕时出现问题,请尝试使用较低的屏幕分辨率。
不支持在录制时旋转屏幕。如果在录制期间屏幕发生了旋转,则部分屏幕内容在录制时将被切断

查看设备型号

adb shell getprop ro.product.model

example :
D:\>adb shell getprop ro.product.model
rk3288

屏幕分辨率

adb shell wm size

example :
D:\>adb shell wm size
Physical size: 800x1280

屏幕密度

adb shell wm density

example :
D:\>adb shell wm density
Physical density: 160

显示屏参数

adb shell dumpsys window displays

example:
D:\>adb shell dumpsys window displays
WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays)
  Display: mDisplayId=0
    init=800x1280 160dpi cur=800x1280 app=800x1280 rng=800x776-1280x1256
    deferred=false layoutNeeded=false

其中 mDisplayId 为 显示屏编号,init 是初始分辨率和屏幕密度,app 的高度比 init 里的要小,表示屏幕底部有虚拟按键,高度为 1920 - 1794 = 126px 合 42dp

查看android_id

adb shell settings get secure android_id

example : 
D:\>adb shell settings get secure android_id
bb9925e47f84df4d

系统版本号

adb shell getprop ro.build.version.release

example:
D:\>adb shell getprop ro.build.version.release
7.1.2

IP地址

adb shell ifconfig

example : 

Mac地址

adb shell cat /sys/class/net/wlan0/address

example:
D:\>adb shell cat /sys/class/net/wlan0/address
18:93:7f:c2:41:ed

CPU信息

adb shell cat /proc/cpuinfo

example:
D:\>adb shell cat /proc/cpuinfo
processor       : 0
model name      : ARMv7 Processor rev 1 (v7l)
BogoMIPS        : 59.76
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc0d
CPU revision    : 1

processor       : 1
model name      : ARMv7 Processor rev 1 (v7l)
BogoMIPS        : 59.76
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc0d
CPU revision    : 1

processor       : 2
model name      : ARMv7 Processor rev 1 (v7l)
BogoMIPS        : 59.76
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc0d
CPU revision    : 1

processor       : 3
model name      : ARMv7 Processor rev 1 (v7l)
BogoMIPS        : 59.76
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc0d
CPU revision    : 1

Hardware        : Generic DT based system
Revision        : 0000
Serial          : 018eb1366d0dd759

内存信息

adb shell cat /proc/meminfo

example:
D:\>adb shell cat /proc/meminfo
MemTotal:        2044120 kB
MemFree:          470212 kB
MemAvailable:    1509152 kB
Buffers:             664 kB
Cached:          1112624 kB
SwapCached:            0 kB
Active:           556680 kB
Inactive:         830984 kB
Active(anon):     189832 kB
Inactive(anon):   137704 kB
Active(file):     366848 kB
Inactive(file):   693280 kB
Unevictable:         256 kB
Mlocked:             256 kB
HighTotal:       1564672 kB
HighFree:         459440 kB
LowTotal:         479448 kB
LowFree:           10772 kB
SwapTotal:        520908 kB
SwapFree:         520908 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:        274656 kB
Mapped:           334688 kB
Shmem:             53160 kB
Slab:             104600 kB
SReclaimable:      84420 kB
SUnreclaim:        20180 kB
KernelStack:        6304 kB
PageTables:        14144 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     1542968 kB
Committed_AS:   23905924 kB
VmallocTotal:     499712 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
CmaTotal:          16384 kB
CmaFree:           15056 kB

其中,MemTotal 就是设备的总内存,MemFree 是当前空闲内存

重启设备

adb reboot

查看链接过的wifi密码

adb shell cat /data/misc/wifi/*.conf

(若无法打印可能是无权限导致)
D:\>adb shell
rk3288:/ # su
rk3288:/ # cat /data/misc/wifi/*.conf


example:
D:\>adb shell cat /data/misc/wifi/*.conf
ctrl_interface=/data/misc/wifi/sockets
driver_param=use_p2p_group_interface=1p2p_device=1
update_config=1
device_name=Android_bb99
device_type=10-0050F204-5
config_methods=virtual_push_button physical_display keypad
p2p_ssid_postfix=-Android_bb99
persistent_reconnect=1
pmf=1
wowlan_triggers=any
       AndroidAP            cea6ec77ad9fctrl_interface=/data/misc/wifi/sockets
disable_scan_offload=1
driver_param=use_p2p_group_interface=1p2p_device=1
update_config=1
device_name=rk3288
manufacturer=rockchip
model_name=rk3288
model_number=rk3288
serial_number=LNGNWZU13Q
device_type=10-0050F204-5
config_methods=physical_display virtual_push_button
p2p_no_go_freq=5170-5740
pmf=1
external_sim=1
wowlan_triggers=any
p2p_search_delay=0

network={
        ssid="zy5717"
        psk="zy12345678"
        key_mgmt=WPA-PSK
        priority=1
        disabled=1
        id_str="%7B%22creatorUid%22%3A%221000%22%2C%22configKey%22%3A%22%5C%22zy5717%5C%22WPA_PSK%22%7D"
}

查看设备是否已有root

adb shell
su

此时命令行提示符是 $ 则表示没有 root 权限,是 # 则表示已 root

使用Monkey进行压力测试

Monkey 可以生成伪随机用户事件来模拟单击、触摸、手势等操作,可以对正在开发中的程序进行随机压力测试

adb shell monkey -p <packagename> -v 500

表示向 <packagename> 指定的应用程序发送 500 个伪随机事件

Monkey 官方参考文档: https://developer.android.com/studio/test/monkey

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值