[Android] adb 命令总结

本文详述了如何使用adb命令进行Android设备的调试,包括查看已连接设备、获取root权限、安装卸载应用、启动Activity与Service、设置系统属性、屏幕截图与录屏、logcat日志管理和文件传输等操作。通过adb,你可以深入控制和管理Android设备。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

调试

adb devices

查看已连接设备

adb root

已root启动adbd进程

adb remount

挂载设备

adb kill-server

杀死adb服务进程,重置adb主机

调用Package Manager

adb shell pm list package [options]

查看设备中安装应用的包名

# 列出所有应用的包名
$ adb shell pm list packages   
# 列出所有包含music的包名
$ adb shell pm list packages music  
# 列出包名和相关文件,如安装路径
$ adb shell pm list packages -f 
# 列出系统应用包名
$ adb shell pm list packages -s 
# 列出三方应用报名
$ adb shell pm list packages -3
# 列出禁用的应用包名
$ adb shell pm list packages -d
# 列出可用的应用包名
$ adb shell pm list packages -e
$ adb shell pm path packagename   列出指定应用包名的apk路径
$ adb shell pm 

adb shell pm path

查看给定apk包名的安装路径

# 查看微信安装路径
$ adb shell pm path com.tencent.mm

adb shell pm clear

清除应用的数据

# 清楚qq数据
$ adb shell pm clear com.tencent.mobileqq

安装卸载应用

adb install [options]

安装应用

# 将本地apk安装到手机
$ adb install /Downloads/app/qq.apk
# 如果存在应用,替换并安装
$ adb install -r /Downloads/app/qq.apk

adb uninstall [options]

卸载指定包名的应用

$ adb uninstall com.tencent.mm
# 卸载应用,但保留数据和缓存
$ adb uninstall -k com.tent.mm

调用 Activity Manager

adb shell am start intent

启动指定Intent的应用

# 启动前强行停止目标应用
$ adb shell am start -S 
# 启动拨号盘
$ adb shell am start com.android.dialer/.app.DialtactsActivity

adb shell am startservice intent

启动指定Intent的Service

adb shell am force-stop package

强行停止与package关联的所有应用

adb shell am broadcast intent

发出Intent广播

adb shll am kill package

结束package关联的所有进程,但不会影响用户体验

adb shell am kill-all

结束所有的后台进程

设置系统属性

adb shell getprop

# 获取所有的属性
$ adb shell getprop 
# 获取指定属性
$ adb shell getprop <key>
1

adb shell setprop

# 设置属性,必须先root
adb shell setprop <key> <value>

屏幕相关

adb shell screencap

# 截屏并保存
$ adb shell screencap /storage/emulated/0/1.png

adb shell screenrecord

# 录屏并保存
$ adb shell screenrecord /storage/emulated/0/demo.mp4

抓取log相关

adb logcat [options] [filtersspecs]

filterspecs 格式为 <tag>[:priority]
priority有:
  V    Verbose 及以上(设置tag后的默认优先级)
  D    Debug 及以上 (没有tag时的默认优先级)
  I    Info 以及上
  W    Warn 及以上
  E    Error 及以上
  F    Fatal 及以上
  S    Silent (最高优先级,不打印任何输出)

adb logcat -s

过滤对应tag的log

# 查找PowerManagerService的Debug及以上log
$ adb logcat -s "PowerManagerService":D 
# 过滤所有PMS的log
$ adb logcat -s "PowerManagerService"

adb logcat -b

输出缓冲区log,buffer可选值有’main’,’system’,’radio’,’events’,’crash’,’default’或’all’,允许多个值用逗号分割。

# 查看事件相关消息的缓冲区
$ adb logcat -b events、
# -b 默认参数
$ adb logcat -b main
# 查看包含无线电相关消息的缓冲区
$ adb logcat -b radio

adb logcat -v

格式化输出log

# 输出日期、时间、优先级/标记,以及发出消息的进程的PID
adb logcat -v time -s "xxx"
# 输出日期、时间、优先级,标记,以及发出消息的线程的PID和TID
adb logcat -v threadtime 

其他

adb logcat -c   清空整个log
adb logcat -B   二进制输出log
adb logcat > test.log  输出到对应文件

dump系统数据

adb shell dumpsys

打印系统数据,对打印的结果可以使用grep进行过滤:

# 打印PowerManagerService中Power数据,过滤含有Battery字段的信息
$ adb shell dumpsys power | grep Battery
# 打印电池数据
$ adb shell dumpsys battery
# 打印电池统计数据
$ adb shell dumpsys batterystats
# 打印设备处于doze模式的数据
$ adb shell dumpsys deviceidle
# 打印activityManagerService中的数据
$ adb shell dumpsys activity

adb shell dumpstats

打印系统状态

$ adb shell dumpstats

文件管理

adb pull 

将手机中的数据拉取到电脑

$ adb pull /data/data/com.tencent.mm /Downloads/myfolder

adb push

将本地数据上传到手机中

$ adb push framework.jar /system/framework

其他

执行adb shell后,进入设备目录后,创建文件、查看属性等都和linux命令相同,这里列举一两个:

# 查看文件目录
$ adb shell ls
# 创建文件
$ adb shell touch 
# 查看文件路径
$ adb shell pwd

参考资料:
adb command
Android developer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值