news 2026/5/1 3:45:49

adb bugreport分析工具

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
adb bugreport分析工具

adb bugreport分析工具

  • 一、adb介绍
  • 二、ADB安装
  • 二、adb命令的语法
  • 三、android常用adb命令

一、adb介绍

adb:Android Debug Bridge,Android 调试桥的缩写,adb 是一个 C/S 架构的命令行工具,

主要由 3 部分组成:

运行在 PC 端的 Client : 可以通过它对 Android 应用进行安装、卸载及调试 运行在 PC 端的 Service : 其管理客户端到 Android 设备上 adb 后台进程的连接 运行在 Android 设备上的 adb 后台进程

二、ADB安装

默认电脑已经安装SDK的,如果没有也可以直接网上下载一个adb工具包。

假定pc上adb工具所在目录:

H:\fwy\windows\adb_fastboot

将adb路径添加到环境变量中(这台电脑→属性→高级系统设置→环境变量)
双击 Path,然后点击“新建”,名字可以自取,然后将adb工具的路径填进去。


添加完保存就可以输入命令验证了 windows+R 打开cmd 输入adb,出现版本号及菜单即配置完成

C:\Users\Administrator Android Debug Bridge version 1.0.41 Version 31.0.2-eng.lsh.20220519.123535 RockChip modified Installed as H:\rxw\windows\adb_fastboot\adb.exe global options: -a listen on all network interfaces, not just localhost -d use USB device (error if multiple devices connected) -e use TCP/IP device (error if multiple TCP/IP devices available) -s SERIAL use device with given serial (overrides $ANDROID_SERIAL) or devices devpath like: adb -s "\\?\usb#vid_2207&pid_0006#6&3795fe82&1&1#{f72fe0d4-cbcb-407d-8814-9ed673d0dd6b}" shell adb -s usb:3-1.2 shell -t ID use device with given transport id -H name of adb server host [default=localhost] -P port of adb server [default=5037] -L SOCKET listen on given socket for adb server [default=tcp:localhost:5037]

二、adb命令的语法

adb 命令的基本语法如下:

adb [-d|-e|-s <serialNumber>] <command> 如果只有一个设备/模拟器连接时,可以省略掉 [-d| -e|-s] 这一部分,直接使用 adb <command> 为命令指定目标设备 如果有多个设备/模拟器连接,则需要为命令指定目标设备。 参数含义-d指定当前唯一通过 USB 连接的 Android 设备为命令目标-e指定当前唯一运行的模拟器为命令目标-s serialNumber>指定相应 serialNumber 号的设备/模拟器为命令目标 serialNumber 可以通过 adb devices 命令获取,如: C:\Users\Administrator>adb devices List of devices attached 0123456789ABCDEF device 比如这时想指定 0123456789ABCDEF 这个设备来运行 adb 命令获取屏幕分辨率: adb -s 0123456789ABCDEF shell wm size

三、android常用adb命令

启动adb服务或停止adb服务

adb kill-server:结束 adb 服务 adb start-server:启动 adb 服务 一般在连接出现异常,使用 adb devices 未正常列出设备,设备状态异常时使用 kill-server,然后运行 start-server 进行重启服务

1)设备连接信息

adb devices:获取设备信息

2)安装应用

adb install [-lrtsdg] <path_to_apk> 如:adb install xxx.apk:安装应用 参数含义-r允许覆盖安装-t允许测试包 (允许安装 AndroidManifest.xml 里 application 指定 android:testOnly=“true” 的应用)-d允许降级覆盖安装-g授予所有运行时权限-s将应用安装到 sdcard-l将应用安装到保护目录 /mnt/asec 如: adb -s 设备名称 install xxx.apk:多个设备,安装到指定设备(通过adb devices获取设备名称) 一口君常用: adb -t install xxx.apk

3)卸载应用

adb uninstall [-k] <packagename>:卸载应用 -k 参数可选,表示卸载应用但保留数据和缓存目录 adb shell pm uninstall --user 0 包名:卸载系统应用 adb shell cmd package install-existing 包名:卸载系统应用后,再恢复系统应用

4)清除应用数据与缓存

adb shell pm clear 包名:清除应用缓存 效果相当于在设置里的应用信息界面点击了「清除缓存」和「清除数据」。

5)查看前台 Activity(查看当前活动窗口的类名)

adb shell dumpsys window | findstr mCurrentFocus

6)查看应用安装路径

adb shell pm path <PACKAGE> 如: C:\Users\Administrator>adb shell pm path com.upuphone.push package:/data/app/~~Mbj7C7djGMaqwuXZBfScGg==/com.upuphone.push-bIO4mliiakFsN-xk4IxnTA==/base.apk

7)查看应用列表

命令格式:

adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [–user USER_ID] [FILTER]参数显示列表无所有应用-f显示应用关联的 apk 文件-d只显示 disabled 的应用-e只显示 enabled 的应用-s只显示系统应用-3只显示第三方应用-i显示应用的 installer-u包含已卸载应用包名包含 字符串

8)查看应用版本信息

adb shell dumpsys package <package_name> | findstr version

如:

C:\Users\Administrator>adb shell dumpsys package com.example.sdkdemo | findstr version versionCode=3 minSdk=29 targetSdk=32 versionName=2.1 signatures=PackageSignatures{d9064a9 version:2, signatures:[f4d74dfb], past signatures:[]}

如果是系统应用,则会有2个版本,下面的是系统app本身的版本,上面的是升级之后的系统app版本如:

C:\Users\Administrator>adb shell dumpsys package com.android.settings | findstr version versionCode=30 minSdk=30 targetSdk=30 versionName=11 signatures=PackageSignatures{af44d47 version:3, signatures:[2bf9b00d], past signatures:[]} versionCode=30 minSdk=30 targetSdk=30 versionName=11 signatures=PackageSignatures{a29ef12 version:0, signatures:[], past signatures:[]}

9)获取log

获取安卓运行的log 命令: adb logcat <设备里的文件路径> [电脑上的目录] 例1:清除logcat所有log adb logcat -c 例2:保存logcat所有log到本地文件peng.log中 adb logcat -> peng.log 按ctrl+c停止保存

10)复制设备里的文件到电脑pull

命令: adb pull <设备里的文件路径> [电脑上的目录] 其中 电脑上的目录 参数可以省略,默认复制到当前目录。 例: adb pull /sdcard/sr.mp4 ~/tmp/ 小技巧: 设备上的文件路径可能需要 root 权限才能访问,如果你的设备已经 root 过,可以先使用 adb shell 和 su 命令在 adb shell 里获取 root 权限后,先 cp /path/on/device /sdcard/filename 将文件复制到 sdcard,然后 adb pull /sdcard/filename /path/on/pc。

11)复制电脑里的文件到设备push

命令: adb push <电脑上的文件路径> <设备里的目录> 例:拷贝可执行程序modetest到bin目录下 adb root adb remount adb push ~/modetest /bin/ 前面两个命令是获取权限

12)查看设备信息
型号

adb shell getprop ro.product.model 如: C:\Users\Administrator>adb shell getprop ro.product.model LE2123

电池电量

adb shell dumpsys battery

如:

C:\Users\Administrator>adb shell dumpsys battery Current Battery Service state: AC powered: false USB powered: true Wireless powered: false Max charging current: 4870000 Max charging voltage: 9000000 Charge counter: 2200000 status: 5 health: 2 present: true level: 100 scale: 100 voltage: 4372 temperature: 350 technology: Li-ion

其中 scale 代表最大电量,level 代表当前电量。上面的输出表示还剩下 100% 的电量。
13)屏幕分辨率wm size

项目Valueadb命令说明adb shell wm size查看分辨率adb shell wm size 1920x1280修改分辨率 (小写的x)adb shell wm density 240修改dpiadb shell wm density reset重置densityadb shell wm size reset重置分辨率 输出示例: Physical size: 1080x1920 表示该设备屏幕分辨率为 1080px * 1920px 如果使用命令修改过,那输出可能是: Physical size: 1080x1920 Override size: 480x1024 表明设备的屏幕分辨率原本是 1080px * 1920px,当前被修改为 480px * 1024px。

14)屏幕密度wm density

项目Valueadb命令说明adb shell wm density查看dpi。adb shell wm density 240修改dpiadb shell wm density reset重置density 输出示例: Physical density: 420 如果使用命令修改过,那输出可能是: Physical density: 480 Override density: 160 表明设备的屏幕密度原来是 480dpi,当前被修改为 160dpi。

15)android_id

adb shell settings get secure android_id 如: C:\Users\Administrator>adb shell settings get secure android_id 6596f32b63225bac 16)IMEI android11.0获取方式(需要root权限) adb shell su service call iphonesubinfo 1 如:
C:\Users\Administrator>adb shell OnePlus9Pro:/ # su su /system/bin/sh: su: inaccessible or not found 127|OnePlus9Pro:/ # service call iphonesubinfo 1 service call iphonesubinfo 1 Result: Parcel( 0x00000000: 00000000 0000000f 00300030 00300031 '........0.0.1.0.' 0x00000010: 00380030 00340034 00360037 00310039 '0.8.4.4.7.6.9.1.' 0x00000020: 00300032 00000037 '2.0.7... ') OnePlus9Pro:/ #
把里面的有效内容提取出来就是 IMEI 了,比如这里的是 001008447691207。 退出adb shell 方式: 输入exit即可

17)Android 系统版本

adb shell getprop ro.build.version.release 如: C:\Users\Administrator>adb shell getprop ro.build.version.release 11

18)IP 地址

设备的 IP 地址的时候都得「设置」-「关于手机」-「状态信息」-「IP地址」很烦对不对?通过 adb 可以方便地查看。 adb shell ifconfig | grep Mask 如: inet addr:10.130.245.230 Mask:255.255.255.252 inet addr:127.0.0.1 Mask:255.0.0.0 那么 10.130.245.230 就是设备 IP 地址。 在有的设备上这个命令没有输出,如果设备连着 WiFi,可以使用如下命令来查看局域网 IP: adb shell ifconfig wlan0 如:
C:\Users\Administrator>adb shell ifconfig wlan0 wlan0 Link encap:Ethernet HWaddr a6:44:63:ac:88:7e Driver cnss_pci inet addr:10.20.1.158 Bcast:10.20.1.255 Mask:255.255.254.0 inet6 addr: fe80::a444:63ff:feac:887e/64 Scope: Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:21765 errors:0 dropped:2 overruns:0 frame:0 TX packets:11168 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3000 RX bytes:6121620 TX bytes:3229281
inet addr:10.20.1.158就是ip地址。

19) Mac 地址

adb shell cat /sys/class/net/wlan0/address 如: C:\Users\Administrator>adb shell cat /sys/class/net/wlan0/address a6:44:63:ac:88:7e 这查看的是局域网 Mac 地址,移动网络或其它连接的信息可以通过 adb shell netcfg 命令来查看

20)CPU 信息

adb shell cat /proc/cpuinfo

21)内存信息

adb shell cat /proc/meminfo 其中,MemTotal 就是设备的总内存,MemFree 是当前空闲内存。

22)屏幕截图screencap

adb exec-out screencap -p > sc.png 其中 -p指的是保存文件格式为png格式,sc.png为指定的文件名 然而实测这个截的图片,无法打开。 参考链接: link 可以使用下面的方式: 先截图保存到设备里: adb shell screencap -p /sdcard/sc.png 然后将 png 文件导出到电脑: adb pull /sdcard/sc.png

23)录制屏幕screenrecord

录制屏幕以 mp4 格式保存到 /sdcard: adb shell screenrecord /sdcard/filename.mp4 需要停止时按 Ctrl+C,默认录制时间和最长录制时间都是 180 秒。 如果需要导出到电脑: adb pull /sdcard/filename.mp4 开发过程与产品或测试沟通经常用到(异地办公时)

24)设置系统日期和时间

注:需要 root 权限。 adb shell su date -s 20230529.131500 表示将系统日期和时间更改为 2023 年 05 月 29 日 13 点 15 分 00 秒。

25)检测设备是否已 root

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

26)使用 Monkey 进行压力测试

Monkey 可以生成伪随机用户事件来模拟单击、触摸、手势等操作,可以对正在开发中的程序进行随机压力测试。 简单用法: adb shell monkey -p <packagename> -v 500 表示向 指定的应用程序发送 500 个伪随机事件。

27)模拟按键/输入input

adb shell 里有个很实用的命令叫 input,通过它可以做一些有趣的事情。 adb shell input keyevent <keycode> 不同的 keycode 能实现不同的功能 项目Value3HOME 键4返回键5打开拨号应用6挂断电话24增加音量25降低音量26电源键27拍照(需要在相机应用里)82菜单键85播放/暂停86 停止播放87播放下一首88播放上一首122移动光标到行首或列表顶部123移动光标到行末或列表底部126恢复播放127暂停播放164静音176打开系统设置187切换应用207打开联系人208打开日历209打开音乐210打开计算器220降低屏幕亮度221提高屏幕亮度223系统休眠224点亮屏幕231打开语音助手276如果没有 wakelock 则让系统休眠 28)网络连接connect 除了用usb连接安卓设备之外,还可以通过网络来连接 首先确认pc和设备是网络互通的, 然后使用下面命令: adb connect 192.168.10.111:5555 adb shell
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 10:17:33

ADB 使用使用详解

ADB 使用使用详解 ADB 使用1.1. 前言1.2. 准备连接1.3. 网络 ADB1.4. Windows下的 ADB 安装1.5. Ubuntu 下的 ADB 安装1.6. 常用 ADB 命令1.6.1. 连接管理 1.7. 调试1.7.1. 获取系统日志 adb logcat1.7.2. 运行命令 adb shell1.7.2.1. 获取详细运行信息 adb bugreport 1.7.3. r…

作者头像 李华
网站建设 2026/4/16 14:14:30

随机森林分类原理详解

随机森林分类原理详解1. ‌集成思想‌2. ‌双重随机性‌3. ‌训练流程‌4. ‌优势机制‌5. ‌数学基础‌随机森林是一种集成学习方法&#xff0c;通过构建多棵决策树并综合其预测结果来提高分类性能。其核心原理包括&#xff1a; 1. ‌集成思想‌ 随机森林由多棵决策树组成&a…

作者头像 李华
网站建设 2026/4/26 17:26:48

【Java SE 基础学习打卡】24 循环结构 - while

目录前言一、先搞懂&#xff1a;循环的核心逻辑&#xff08;为什么需要循环&#xff1f;&#xff09;1.1 循环的 3 个核心要素&#xff08;新手必记&#xff09;1.2 while 和 do-while 的核心区别&#xff08;先有印象&#xff09;二、逐个攻破&#xff1a;while 循环&#xff…

作者头像 李华
网站建设 2026/4/29 0:54:06

揭秘Aeron消息系统:构建高性能实时通信架构的完整指南

揭秘Aeron消息系统&#xff1a;构建高性能实时通信架构的完整指南 【免费下载链接】aeron Efficient reliable UDP unicast, UDP multicast, and IPC message transport 项目地址: https://gitcode.com/gh_mirrors/ae/aeron 在现代分布式系统中&#xff0c;高性能消息处…

作者头像 李华
网站建设 2026/4/29 17:39:38

CSS动画缓动函数终极指南:掌握cubic-bezier参数的艺术

CSS动画缓动函数终极指南&#xff1a;掌握cubic-bezier参数的艺术 【免费下载链接】easings.net Easing Functions Cheat Sheet 项目地址: https://gitcode.com/gh_mirrors/eas/easings.net 想要让你的网页动画从生硬变得生动自然吗&#xff1f;这份终极指南将带你深入探…

作者头像 李华
网站建设 2026/4/29 11:06:50

Dat密钥管理完整指南:从入门到精通的安全实践

在分布式文件共享的世界中&#xff0c;Dat密钥管理是确保数据安全传输和访问控制的核心环节。无论你是初次接触Dat的新手&#xff0c;还是希望提升安全防护水平的资深用户&#xff0c;掌握正确的密钥管理方法都至关重要。 【免费下载链接】dat :floppy_disk: peer-to-peer shar…

作者头像 李华