ADB也就是Android Debug Bridge,是我们开发调试Android时必不可少的工具。ADB功能强大操作简单,那么就让我们一起来看下都有哪些奇技淫巧吧。Here we go!
1 | adb start-server |
注:要是英语好,本文绝大多数命令都可以通过
adb --help找到
常用命令
adb基本命令
1 | # 开启ADB服务 |
1 | # 关闭ADB服务 |
1 | # 查看连接的设备 |
1 | # 安装应用 |
1 | # 卸载应用 |
1 | # 将手机中的文件下载到电脑中(前一个参数是文件在设备中的路径,后一个参数是要将文件下载到的路径) |
1 | # 将电脑中的文件上传到手机中(前一个参数是文件在电脑中的路径,后一个参数是要将文件上传到的路径) |
1 | # 重启手机 |
1 | # 查看指定 tag 日志 |
1 | # 清除日志缓存 |
1 | # 通过 tcp/ip 连接手机,默认端口 5555(需要在手机中开启wifi adb) |
adb shell下的命令
1 | # 通过scheme启动APP(示例中是微信的scheme) |
1 | # 通过包名/Activity类名启动APP |
1 | # 通过包名强制停止APP |
1 | # 查看当前手机安装的所有包名 |
1 | # 列出指定包名对应的apk路径 |
1 | # 清空指定包名对应的应用的数据和缓存文件 |
1 | # 录制屏幕操作视频到sd卡并命名为 test.mp4 |
1 | # 截屏命令 |
奇技淫巧
adb基本命令
1 | # 从电脑端踢出连接以强制重新连接 |
1 | # 从手机端踢开连接强制重新连接 |
1 | # 重置脱机/未授权设备以强制重新连接 |
1 | # 获取当前状态 offline | bootloader | device |
1 | # 等待设备变成期待的状态 |
1 | # 获取序列号 |
1 | # 覆盖安装(保留数据和缓存文件,重新安装apk) |
1 | # 安装apk到sd卡 |
1 | # 卸载app但保留数据和缓存文件 |
1 | # 重启到bootloader,即刷机模式 |
1 | # 重启到recovery,即恢复模式 |
1 | # 查看指定 tag 日志,tag中:后面为log等级 |
1 | # 按照格式输出日志 |
1 | # 选择打印日志的缓冲区 |
1 | # 收集状态信息,里面包含有dmesg,dumpstate和dumpsys |
1 | # 收集kernel的log凡是跟kernel相关的,比如driver出了问题(相机,蓝牙,usb,启动,等等吧) |
1 | # 收集所有关于系统的内容 |
adb shell下的命令
实际为手机目录 /bin 下的命令,下面主要介绍Android特有的命令,其他命令和Linux无太大差别。
am
1 | # 启动Service |
1 | # 发送广播 |
1 | # 使用 Instrumentation 实例启动监控。通常,目标 component 是表单 test_package/runner_class |
1 | # 强行停止与 package(应用的包名称)关联的所有应用 |
1 | # 终止与 package(应用的包名称)关联的所有进程。仅终止可安全终止且不会影响用户体验的进程。 |
ifconfig
1 | # WIFI状态下查看当前IP |
dumpsys
1 | # 查看最上层Activity名字 |
1 | # 查看最上层Activity名字 |
1 | # 查看Activity的任务栈 |
1 | # 显示所有的activities的信息,包括任务栈等: |
1 | # 显示accounts信息 |
1 | # 显示CPU信息 |
1 | # 显示wifi信息 |
1 | # 显示键盘,窗口以及它们的关系 |
1 | # 显示分辨率 |
1 | # 查看UI绘制的各个层级信息 |
1 | # 查看耗电量 |
1 | # 获取安装包信息 |
1 | # 查看每个应用的启动次数和时间 |
1 | # 显示状态栏相关的信息 |
1 | # 显示内存信息 |
1 | # 显示磁盘相关信息 |
1 | # 显示电池相关信息 |
1 | # 显示Alarm信息 |
cat
1 | # 查看内存信息 |
1 | # 指定进程内存地址映射 |
1 | # 指定进程内存详细使用信息 |
1 | # 获取CPU信息 |
1 | # --------- 需要root --------- |
getevent
1 | # 查看可输入的设备 |
input
1 | # 点击 |
ps
1 | # 查看相应包名的进程 |
service
1 | # 查看后台services信息 |
screenrecord
1 | # 限制视频录制时间为10s,如果不限制,默认180s |
getprop
1 | # 获取属性信息 |
monkey
1 | # usage: monkey |
| 基本参数 | 说明 |
|---|---|
| -p | |
| -s | |
| –throttle | |
| -v | 指定反馈信息级别(信息级别就是日志的详细程度) |
| -c | |
| -f |
| 事件参数 | 说明 |
|---|---|
| –pct-touch | |
| –pct-motion | |
| –pct-trackball | |
| –pct-syskeys | |
| –pct-nav | |
| –pct-majornav | |
| –pct-appswitch | |
| –pct-flip | |
| –pct-anyevent | |
| –pct-pinchzoom | |
| –pct-permission |
| 调试参数 | 说明 |
|---|---|
| –ignore-crashes | 忽略因崩溃或异常引起的停止运行 |
| –ignore-timeouts | 忽略应用发生超时错误(ANR) |
| –ignore-security-exceptions | 忽略应用发生任何权限错误 |
| –monitor-native-crashes | 监视并报告monkey运行时native code的崩溃事件 |
| –ignore-native-crashes | 忽略因native code的崩溃事件 |
| –kill-process-after-error | 在应用出错后通知系统杀死发生错误的进程 |
| –hprof | 在事件序列前后立即生成profilfing report |
| –dbg-no-events | 监视应用程序所调用的包之间的转换 |
| –wait-dbg | 暂停执行中的monkey,直到有调试器与它连接 |
其他工具
1 | # 查看Android应用包名package和入口activity名称 |