This page looks best with JavaScript enabled

ADB-Shell-Commands

 ·  ☕ 3 min read

ADB:Android Debug Bridge 是能够和手机或模拟器通信的一个命令行工具。下载地址

命令分类

1. ADB Debugging

1
adb devices 输出连接的模拟器/真机列表
1
adb forward tcp:8000 tcp:9000 实现PC和Android设备Socket通信
1
adb kill-server 关闭adb服务

2. 连接设备

1
adb connect 192.168.0.101 使用WIFI连接设备,connect设备的ip地址
1
adb usb 使用usb连接模式

3. 包管理

adb install

1
adb install test.apk 安装应用到设备
1
adb install -l test.apk 对应用加锁
1
adb install -r test.apk 如果安装的应用已经存在,卸载已经存在的
1
adb install -t test.apk 允许安装测试包
1
adb install -s test.apk 将应用安装到SD卡
1
adb install -d test.apk 允许安装低版本
1
adb install -p test.apk 安装应用的局部

各项参数可以结合使用

1
adb install -r -t test.apk

adb uninstall

删除一个应用包

1
adb uninstall com.test.app 卸载应用
1
adb uninstall -k com.test.app 卸载应用,保存数据和缓存目录

adb shell pm list package

输出所有应用包名,可以追加选项过滤

1
adb shell pm list packages 输出所有应用包名
1
adb shell pm list packages -f 输出所有应用包名和应用的安装位置 例如📦/data/app/io.github.jiyangg.app/base.apk=io.github.jiyangg.app
1
adb shell pm list packages -d 输出禁用的应用包名
1
adb shell pm list packages -e 输出可以使用的应用的包名
1
adb shell pm list packages -s 输出系统应用包名
1
adb shell pm list packages -3 输出第三方应用包名
1
adb shell pm list packages -i 输出应用包名和安装器
1
adb shell pm list packages -u 输出包括已经卸载的应用包名
1
adb shell pm list packages --user <USER_ID> 输出制定用户空间的应用包名

选项命令可以结合使用

1
adb shell pm list packages -3 -f 查看第三方应用的安装位置和包名

adb shell pm path

根据包名显示APK存放位置

1
adb shell pm path com.android.phone

adb shell pm clear

删除指定包名的所有数据,包括data和cache

1
adb shell pm clear com.test.abc

4. 文件管理

adb pull

adb pull <remote> [local]

从设备下载文件到电脑

1
adb pull /sdcard/test.mp4 下载SD卡根目录test.mp4到电脑的当前目录下
1
adb pull /sdcard/test.mp4 d: 下载SD卡根目录test.mp4到电脑的指定目录d盘下

adb push

adb push <local> <remote>

从电脑复制文件到设备

1
adb push test.apk /sdcard 将电脑当前目录下test.apk文件复制到设备SD卡根目录
1
adb push d:\test.apk /sdcard 将电脑d盘目录下test.apk文件复制到设备SD卡根目录

adb shell ls

输出文件列表

  • ls 输出文件列表,不包含隐藏文件
  • ls -a 输出文件列表,包含隐藏文件
  • ls -i 输出文件列表,包含文件下标
  • ls -s 输出文件列表,包含文件的大小
  • ls -n 输出文件列表,包含文件的UID,GID
  • ls -R 递归列出子目录

adb shell rm

删除文件

  • rm -f 强制删除文件
  • rm -r 递归删除文件夹的文件
  • rm -d 删除文件夹,即使非空.(==rmdir)
  • rm -i 删除前提示

adb shell mkdir

创建目录

  • mkdir /sdcard/tmp
  • mkdir -m 777 /sdcard/tmp 创建并设置权限
  • mkdir -p /sdcard/tmp/sub1/sub2 根据需要创建父目录

adb shell touch 新建文件

adb shell pwd 返回当前路径

adb shell cp 复制文件

adb shell mv 移动或重命名文件

5. 网络

1
adb shell netstat 网络信息统计
1
adb shell netcfg 查看网络连接信息,通过配置文件管理

adb shell ip

ip [ OPTIONS ] OBJECT

OBJECT := { link | addr | addrlabel | route | rule | neigh | ntable |tunnel | tuntap | maddr | mroute | mrule | monitor | xfrm |netns | l2tp }

OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |-f[amily] { inet | inet6 | ipx | dnet | link } |-l[oops] { maximum-addr-flush-attempts } |-o[neline] | -t[imestamp] | -b[atch] [filename] |-rc[vbuf] [size]}
1
adb shell ip -f inet addr show wlan0 显示WIFI的ip地址

6. Logcat

打印日子到屏幕

adb logcat [option] [filter-specs]

1
adb logcat 打印所有日志

根据不同的级别打印日志,日志级别:V < D < I < W < E

  • V : Verbose 详细
  • D : Debug
  • I :Info
  • W :Warn
  • E : Error
1
2
3
4
5
6
7
adb logcat *:V 显示V,D,I,W,E级别日志
adb logcat *:D 显示D,I,W,E级别日志
adb logcat *:I 显示I,W,E级别日志
adb logcat *:W 显示W,E级别日志
adb logcat *:E 显示E级别日志
adb logcat *:F 显示致命级别日志
adb logcat *:S 沉默级别,不显示任何日志

adb logcat -b <Buffer>

查看缓冲区信息

1
adb logcat -b main 默认,查看全部缓冲区
1
adb logcat -b radio 查看包含无线电/电话相关消息的缓冲区
1
adb logcat -b event 查看包含事件相关消息的缓冲区
1
adb logcat -c 清除整个日志并退出
1
adb logcat -d  将日志全部打印到屏幕并退出
1
adb logcat -f test.logs 将日志写入到文件test.logs
1
adb logcat -g 输出日志缓冲区大小并退出
1
adb logcat -n <count>
1
adb logcat -r <kbytes> 日志文件每次的输出,需要结合 -f
Support the author with
alipay QR Code
wechat QR Code

Yang
WRITTEN BY
Yang
Developer