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地址
|
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]
根据不同的级别打印日志,日志级别: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 -r <kbytes> 日志文件每次的输出,需要结合 -f
|