1、adb介绍
ADB,全称: Android Debug Bridge,是一种操作手机设备或模拟器的命令行工具。
2、adb安装
前提:安装java + 配置环境变量(原因:android SDK的开发是依赖java语言的)
android SDK下载地址:
https://developer.android.com/studio/releases/platform-tools.html(指到\platform_tools路径下)
安装操作:下载 + 配置环境变量
3、adb常用命令
-设备连接
真机:usb连接 + 开启调试模式
android模拟器:mumu(7555)、夜神、雷电、逍遥等
# win(+手机驱动)连接模拟器 7555:端口号
adb connect 127.0.0.1:7555
# mac 关闭adb服务
adb kill-server
# 查看连接设备
adb sevices
# 查看设备状态
adb get_state
可能问题:
offline:连接出现问题,设备无响应
Unauthorized : 未授权
解决办法:
# mac 关闭adb服务
adb kill-server
# 查看连接设备(重启adb 服务)
adb sevices
-adb命令格式
# 格式: adb [-d|-e|-s <设备号>] <command>
# 说明:
# -d指定当前唯一通过usb连接的设备为命令目标
# -e指定当前唯一运行的模拟器为命令目标
# -s指定相应的设备为命令目标
-安装/卸载
# 普通安装 apk path: apk路径
adb install <apk path>
# 覆盖安装/替代安装
adb install -r <apk path>
# 卸载应用
adb uninstall xx.apk
# 卸载应用(不删除配置文件,保存数据缓存信息)
adb uninstall -k xx.apk
-启动页面命令
package包:是android应用的唯一标志,例如com.baidu.demo
activity活动页:是android应用页面
# 打开应用,获取当前页面所属的 <package名>/<activity名>
adb shell "dumpsys window | grep mCurrentFocus"
# 获取启动页面的activity
adb logcat ActivityManager:I | grep "cmp"
adb logcat ActivityManager:I | findstr "cmp"
# 启动页面
adb shell am start -n <package名>/<activity名>
-adb shell 常用命令
# am: activity相关 pm: package相关
# 查看目录结构
adb shell ls
# 查看系统当前日期
adb shell date
# 查看系统CPU使用情况
adb shell cat /proc/cpuinfo
# 查看系统内存使用情况
adb shell cat /proc/meminfo
# 显示所有应用
adb shell pm list package
adb shell pm list packages -f # 显示路径
# 显示系统自带应用
adb shell pm list package -s
# 显示第三方应用
adb shell pm list package -3
# 打开应用,获取当前页面所属的 <package名>/<activity名>
adb shell "dumpsys window | grep mCurrentFocus"
# 启动页面
adb shell am start -n <package名>/<activity名>
# 清除应用数据及缓存
adb shell clear <包名>
# 使用screencap命令来进行手机屏幕截图
adb shell screencap /sdcard/screen.png
# 使用screenrecord[options] filename命令来录制屏幕视频
adb shell screenrecord /sdcard/video.mp4
# 使用adb shell input命令向屏幕输入一些信息
adb shell input text "insert%stext%shere"
# 使用adb shell input tap命令 模拟屏幕点击事件
adb shell input tap 100 200 # 表示在屏幕上(100,200)坐标点点击一次
# 使用adb shell input swipe命令 模拟手势滑动事件
adb shell input swipe 100 200 300 100 10 # 表示从(100,200)开始滑到(300,100)结束 整个过程耗时10ms
# 使用adb shell input keyevent命令来模拟点按实体按钮
adb shell input keyevent 25 # 表示调低音量。数字25是在AOSP源码中的KeyEvent类里定义的一个事件常量
adb shell input keyevent 3 # home页面
adb shell input keyevent 4 # 返回
## dumpsys命令提供的系统信息 使用adb shell service list查看dumpsys提供查询信息的服务
# 常用服务:activity AMS相关信息|package PMS相关信息|window WMS相关信息|input IMS相关信息|power PMS相关信息|procstats 进程统计|battery 电池信息|alarm 闹钟信息|meminfo 内存
adb shell dumpsys battery # 查看电池信息
adb shell dumpsys cpuinfo <应用名> # 查看cpu信息
adb shell dumpsys meminfo <应用名> # 查看cpu信息
adb shell top -d 1 |grep 'com.baidu.demo' # -d 1 每隔1s 刷新
-adb 传输文件
# 从手机上拉文件
adb pull <设备路径> <电脑路径>
adb pull /data/local/tmp/xx.sh
# 从本地往手机上推文件
adb push <电脑路径> <设备路径>
adb push xx.sh /data/local/tmp/
adb push xx.sh /sdcard/
-adb查看系统日志
日志的级别:V-verbose 明细|D-debug 调试|I-info 信息|W-warn 警告|E-error 错误|F-fatal严重错误|S-silent 静默状态
# 命令格式
adb logcat [tag:level] [tag:level] ...
adb logcat # 打印默认日志数据
adb logcat -v time # 打印时间
adb logcat -v color # 使用不同颜色显示不同优先级
adb logcat -f <filename> # 将日志输出到文件
adb logcat > log.log # 重定向到本地文件
adb logcat -c # 清理已存在的日志
# 添加过滤
adb logcat -v time '*:W' # 打印warning及以上级别日志
adb logcat ActivityManager:D '*:S' # 过滤tag为ActivityManager,level为debug及以上的日志