adb 常用命令

Android SDK(Software Development Kit,软件开发工具包)被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。它提供了Android API 库和开发工具构建,测试和调试应用程序。简单来讲,Android SDK 可以看做用于开发和运行 Android 应用的一个软件。
当下载完成之后我们会发现,会多一个build-tools目录,以及platform-tools。platform-tools下面会有一个adb,它就是我们做Android的专项测试必须的工具,这就是我们的一个最简化的安装。
ADK是Android Open Accessory Development Kit 的缩写。使用ADK使得不支持USB Host功能的Android设备也可以和其它USB设备交互。比如使用Android手机来控制步进电机,条码扫描仪,机器人等。
ADB的全称为Android Debug Bridge,字面意思就是安卓调试桥接,简单点说,它是Android系统提供的一套工具,可让您与设备进行通信。通过它,我们可以在电脑上建立一个连接到手机的通道,然后可以在电脑上向手机发送一些指令,完成一些我们需要做的工作 。

1|0adb 基础命令

1|1adb 基础语法

adb [-d|-e|-s <serialNumber>] <command>

命令行参数

  • -d:指定当前唯一通过 USB 连接 的 Android 设备为命令目标
  • -e:指定当前唯一运行的 模拟器为 命令目标
  • -s <serialNumber>:指定相应 serialNumber 号的设备/模拟器为命令目标

重点

  • 如果只有连了一台设备,那就不需要 -d、-e、-s 参数了
  • 多个设备/模拟器连接的情况下较常用的是 -s <serialNumber> 参数,serialNumber 为设备到序列号,设备连接上电脑后可以通过 adb devices 命令获取
  • serialNumber 可能是序列号也可能是 IP

1|2查看当前 adb 连接上的设备列表

adb devices

1|3杀掉 adb 服务

adb kill-server

1|4开启 adb 服务

adb start-server

1|5adb 安装 app

adb install 包地址

1|6adb 卸载 app

adb uninstall 包名

1|7把文件从手机中复制到电脑

adb pull <手机路径> <电脑路径>

1|8把文件从电脑复制到手机上

adb push <电脑路径> <手机路径>

1|9以 root 权限运行 adb

adb root

存在一些需要 root 权限才能执行的命令

1|10取消 root 权限

adb unroot

1|11指定 adb server 的网络端口

# 默认端口为 5037 adb -P <port> start-server

1|12指定设备 ID

adb -s 09091JEC212986 logcat -v time

2|0查看手机设备信息

2|1查看手机型号

adb shell getprop ro.product.model

2|2查看电池状况

adb shell dumpsys battery

其中 scale 代表最大电量,level 代表当前电量。上面的输出表示还剩下 68% 的电量。

2|3查看分辨率

adb shell wm size

2|4查看屏幕密度(ppi)

adb shell wm density

2|5查看显示屏参数

adb shell dumpsys window displays

2|6查看android_id

adb shell settings get secure android_id

2|7查看 Android 系统版本

adb shell getprop ro.build.version.release

2|8查看IP地址,网卡相关

adb shell ifconfig adb shell ifconfig wlan0 # 指定网卡

2|9查看Mac地址

adb shell cat /sys/class/net/网卡/address adb shell cat /sys/class/net/eth0/address adb shell cat /sys/class/net/wlan0/address

或者

adb shell netcfg

或者直接手机上看

2|10查看CPU信息

adb shell cat /proc/cpuinfo

2|11查看内存信息

adb shell cat /proc/meminfo

2|12查看硬件与系统属性

1|0查看所有属性

adb shell getprop

1|0单独查看属性

adb shell getprop <属性名>

1|0常用属性列表

属性名 含义
ro.build.version.sdk SDK 版本
ro.build.version.release Android 系统版本
ro.build.version.security_patch Android 安全补丁程序级别
ro.product.model 型号
ro.product.brand 品牌
ro.product.name 设备名
ro.product.board 处理器型号
ro.product.cpu.abilist CPU 支持的 abi 列表[节注一]
persist.sys.isUsbOtgEnabled 是否支持 OTG
dalvik.vm.heapsize 每个应用程序的内存上限
ro.sf.lcd_density 屏幕密度

3|0应用管理

3|1查看应用列表

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 包含已卸载应用
包名包含的字符串

查看系统应用

adb shell pm list packages -s

查看第三方应用

adb shell pm list packages -3

查看某个包名中包含指定字符的应用

# 比如要查看包名包含字符串 java 的应用列表 adb shell pm list packages java # 也可以使用 grep 来过滤 adb shell pm list packages | grep java

3|2安装应用

adb install [-lrtsdg] <path_to_apk>

命令行参数列表

参数 含义
-l 将应用安装到保护目录 /mnt/asec
-r 允许覆盖安装
-t 允许安装 AndroidManifest.xml 里 application 指定android:testOnly="true"的应用
-s 将应用安装到 sdcard
-d 允许降级覆盖安装
-g 授予所有运行时权限

3|3卸载应用

adb uninstall [-k] <packagename>
  • 表示应用的包名
  • -k 参数可选,表示卸载应用但保留数据和缓存目录。

3|4清除应用数据和缓存

adb shell pm clear <packagename>

这条命令的效果相当于在设置里的应用信息界面点击了清除缓存清除数据

3|5查看当前运行的 APP 的页面 Activity 信息

两条命令差不多效果

adb shell "dumpsys window | grep mCurrentFocus" adb shell "dumpsys activity activities | grep mFocusedActivity"

3|6查看某个包的版本号

adb shell dumpsys package 包名 | findstr versionName

3|7查看应用安装路径

adb shell pm path <PACKAGE>

3|8杀死一个应用进程

adb shell kill [pid]

1|0不过一般先要获得 PID

# 查看所有进程信息的命令 adb shell ps # 可以通过 grep 筛选进程名称来查 PID adb shell "ps |grep water" # 结束进程 adb shell kill pid

4|0日志相关

Android 系统的日志分为两部分

  1. 底层的 Linux 内核日志输出到 /proc/kmsg
  2. Android 的日志输出到 /dev/log
adb logcat [<option>] ... [<filter-spec>] ...

4|1按优先级过滤日志

Android 的日志分为如下几个优先级

  • V —— Verbose(最低,输出得最多)
  • D —— Debug
  • I —— Info
  • W —— Warning
  • E —— Error
  • F —— Fatal
  • S —— Silent(最高,啥也不输出)
adb logcat *:W
  • 该命令会将 Warning、Error、Fatal 和 Silent 日志输出。
  • 记得固定写法哦 *:W

4|2指定日志格式

adb logcat -v <format>

1|0brief

<priority>/<tag>(<pid>): <message> # 示例 adb logcat -v brief D/AF::TrackHandle( 983): OpPlayAudio: track:14431 usage:13 muted

1|0process

── (<tag>) <priority>(<pid>) <message> # 示例 adb logcat -v process ── (MAXHUB-PostBonjourInfoRunnable) D( 1785) Disconnected process message: 10, size: 0 (HeadsetStateMachine)

1|0tag

<priority>/<tag>: <message> # 示例 adb logcat -v tag D/HeadsetStateMachine: Disconnected process message: 10, size: 0

1|0raw

<message> # 示例 Disconnected process message: 10, size: 0

1|0time

<datetime> <priority>/<tag>(<pid>): <message> # 示例 08-28 22:39:39.974 D/HeadsetStateMachine( 1785): Disconnected process message: 10, size: 0

1|0threadtime

<datetime> <pid> <tid> <priority> <tag>: <message> # 示例 08-28 22:39:39.974 1785 1832 D HeadsetStateMachine: Disconnected process message: 10, size: 0

1|0long

[ <datetime> <pid>:<tid> <priority>/<tag> ] <message> # 示例 [ 08-28 22:39:39.974 1785: 1832 D/HeadsetStateMachine ] Disconnected process message: 10, size: 0

4|3清空日志

adb logcat -c

4|4查看内核日志

adb shell dmesg

5|0模拟按键输入

input [<source>] <command> [<arg>...]

5|1物理键

# 电源键 adb shell input keyevent 26 # 菜单键 adb shell input keyevent 82 # HOME 键 adb shell input keyevent 3 # 返回键 adb shell input keyevent 4 # 音量+ adb shell input keyevent 24 # 音量- adb shell input keyevent 25 # 静音 adb shell input keyevent 164

5|2媒体控制

# 播放/暂停 adb shell input keyevent 85 # 停止播放 adb shell input keyevent 86 # 播放下一首 adb shell input keyevent 87 # 播放上一首 adb shell input keyevent 88 # 恢复播放 adb shell input keyevent 126 # 暂停播放 adb shell input keyevent 127

5|3点亮/熄灭屏幕

# 点亮屏幕 adb shell input keyevent 224 # 熄灭屏幕 adb shell input keyevent 223

5|4触击屏幕

手机左上角坐标为 0 0

# x,y为坐标位置 adb shell input tap <X> <Y>

5|5滑动屏幕

四个参数:起始点 x 坐标 起始点 y 坐标 结束点 x 坐标 结束点 y 坐标

# 向上滑动 adb shell input swipe 300 1000 300 500 # 向下滑动 adb shell input swipe 300 100 300 1000 # 向左滑动 adb shell input swipe 1000 500 200 500 # 向右滑动 adb shell input swipe 200 500 1000 500

6|0其他实用功能

6|1屏幕截图

adb exec-out screencap -p > sc.png
  • 截图保存到电脑执行该命令的目录下
  • 如果指定文件名以 .png 结尾时可以省略 -p 参数

注意

如果 adb 版本较老,无法使用 exec-out 命令,建议更新 adb 版本

也可以用下面的步骤来完成

# 先截图保存到设备里 adb shell screencap -p /sdcard/sc.png # 然后将 png 文件导出到电脑 adb pull /sdcard/sc.png

6|2录制屏幕

# 录制屏幕以 mp4 格式保存到 /sdcard adb shell screenrecord /sdcard/filename.mp4 # 导出到电脑 adb pull /sdcard/filename.mp4

需要停止时按 Ctrl-C,默认录制时间和最长录制时间都是 180 秒

6|3查看wifi密码

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

6|4删除系统默认APP

1|0找到要删除的包名

adb shell pm list packages -s

1|0获取包名的地址

adb shell pm path 包名

【如:adb shell pm path com.seewo.rainbow.pro】

1|0获取root权限

adb root adb remount

1|0挂载系统读写权限

adb shell rm 包名地址

1|0删除包

adb shell rm -r /data/app/com.seewo.rainbow.pro-1

1|0重启

adb reboot

__EOF__

本文作者😎
本文链接https://www.cnblogs.com/dongye95/p/15003187.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   dongye95  阅读(180)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示