adb (Android Debug Bridge)是Android 调试桥的缩写,adb 是一个 C/S 架构的命令行工具,主要由 3 部分组成:
-
运行在 PC 端的 Client : 可以通过它对 Android 应用进行安装、卸载及调试
-
运行在 PC 端的 Service : 其管理客户端到 Android 设备上 adb 后台进程的连接
-
运行在 Android 设备上的 adb 后台进程
adb命令
可以通过 adb 来管理多台设备,adb命令一般格式:adb [-e | -d | -s <设备序列号>] <子命令>
常用命令:
-
adb devices 获取设备列表及设备状态 一台/多台设备
-
adb get-serialno 获取设备硬件序列号 只有一台设备
-
adb get-state 获取设备的状态
获取的状态有如下三种:
device:设备正常连接
offline:连接出现异常,设备无响应
unknown:没有连接设备
- adb install xxx.apk 安装apk adb install -r xxx.apk:保留数据和缓存文件,重新安装apk
- adb uninstall xxx.apk 卸载应用 adb uninstall -k xxx.apk:卸载应用,但保留数据和缓存文件
- adb connect/disconnect <device-ip-address> 通过wifi连接/断开手机 无需数据线,缺点是速度比较慢
- adb pull <手机路径> <电脑路径> 从手机中拉取信息放到本地电脑上
如:adb pull sdcard/pull.txt d:\
重命名:adb pull sdcard/pull.txt d:\rename.txt
-
adb push <本机路径> <手机路径> 从本地推送信息到手机上去 如:adb push d:\push.txt sdcard/
-
adb reboot 重启 Android 设备
-
adb kill-server , adb start-server 结束 adb 服务, 启动 adb 服务
-
adb bugreport 打印dumpsys、dumpstate、logcat的输出
重定向:adb bugreport > d:\bugreport.log
adb logcat打印日志:logcat一般格式:[adb] logcat [options] [filterspecs] (adb logcat --help可以查看具体格式)
常用options:
-v :设置日志的输出格式。如:
-
adb logcat -v time 日期 时间 优先级 / 标签 (进程ID) : 进程名称 : 日志信息
-
adb logcat -v long [日期 时间 进程ID : 线程ID 优先级 / 标签] 日志信息
-c :清空所有的日志缓存信息。如:
-
adb logcat -c
-b :加载一个日志缓冲区, 默认是 main。如;
-
adb logcat -b radio :radio,广播电话相关的日志信息
-
adb logcat -b system:system,与系统相关的日志信息
-
adb logcat -b events:events,事件相关的日志信息
-
adb logcat -b main:main,所有java层日志,默认为main
-t:输出最近的几行日志, 输出完退出, 不阻塞。如:
-
adb logcat -t 100:输出最近的100行日志
重定向:adb logcat -v time > E:\log.txt
adb shell命令adb 命令是 adb 这个程序自带的一些命令,而 adb shell 则是调用的 Android 系统中的命令,这些 Android 特有的命令都放在了 Android 设备的 system/bin 目录下
adb shell:进入设备shell
exit:退出adb shell
常用命令:
-
adb shell settings get secure android_id 获取Android_id
-
adb shell pm list package 列出所有的应用的包名
adb shell pm list package -s :列出系统应用
adb shell pm list package -3:列出第三方应用
adb shell pm list package -f:列出应用包名及对应的apk名及存放位置
adb shell pm list package -i:列出应用包名及其安装来源
-
adb shell "dumpsys activity | grep mFocusedActivity"
-
adb shell "dumpsys window | grep mCurrent" 获取当前运行的app Package和Activity
获取app Package和Activity的其他方法:进入sdk\builds-tool,执行aapt dump badging xxx.apk