adb shell 入门

一、ADB 简介
ADB(Android Debug Bridge) 是 Android 开发/测试人员不可替代的通用命令行工具,其允许与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试应用,并提供对 Unix shell(可用来在模拟器或连接的设备上运行各种命令)的访问。Android 系统是基于 Linux 内核的,所以 Linux 里的很多命令在 Android 里也有相同或类似的实现,在 adb shell 里可以调用。该工具是一个客户端-服务器程序。

客户端:客户端在开发计算机上运行。您可以通过发出 adb 命令从命令行终端调用客户端。

后台程序:后台程序在每个模拟器或设备实例上作为后台进程运行。http://www.daiqiyang.com

服务器:服务器在开发计算机上作为后台进程运行。

二、安装:网上下载adb解压到自定义路径后,配置环境变量即可。

三、连接:
ADB与本地 TCP 端口 5037 绑定,并侦听从 adb 客户端发送的命令(所有 adb 客户端均使用端口 5037 与 adb 服务器通信)。

  1. 连接 Android 模拟器
    夜神模拟器:adb connect 127.0.0.1:62001
    2.USB 连接 Android 设备
    a. 打开开发者选项
    Settings >About phone>连续点击 Build number
    b. 开启 USB debugging
    c .Dos 下输入adb devices验证手机是否连上 adb
    3.手机和电脑连入同一局域网 adb connect ip

四、常用命令

1、安装应用
(1)adb install D:\adbtest\baidu.apk 文件名中不要有空格

(2)adb push D:\adbtest\baidu.apk /system/app
会将原来系统中的对应的apk覆盖掉
可用 adb pull /system/app/baidu.apk /home/ 备份

有时候会出现Read-only的错误,我们可以使用强制安装命令来安装apk
adb install -r D:\adbtest\baidu.apk

2、卸载
adb uninstall com.baidu.browser.apps

3、导入/导出 文件到手机中
adb pull remote local
adb push local remote

4、包管理命令pm
adb shell pm list packages -3 查看第三方安装包
根据包名,查看apk 安装路径
adb shell pm path com.baidu.browser.apps 包名
清除app 数据
adb shell pm clear com.baidu.browser.apps 包名

5、dumpsys查询系统服务转储到屏幕:
查看所有activity
adb shell dumpsys activity activities、
获取当前运行的Activity
adb shell dumpsys activity | findstr Run

6、查看系统进程
adb shell top
adb shell ps
Ps 只提供当前进程的快照。top即时查看最活跃的进程

7、抓取日志adb logcat
adb logcat -v time :E >D:\test.log 抓取日志并输出到制定路径
adb logcat ActivityManager:i
:s
查看activity日志,仅输出标记为“ActivityManager”并且优先级大于等于“Info”的日志,*:S用于设置所有标记的日志优先级为S,这样可以确保仅输出符合条件的日志。
只显示需要的输出(白名单),通过管道使用 grep 过滤。
参考资料(https://www.cnblogs.com/bydzhangxiaowei/p/8168598.html

8、adb shell monkey 压力测试
参考资料(https://www.cnblogs.com/yindada/p/9845032.html
adb shell monkey -p com.baidu.browser.apps -v 1000 >d:\adbtest\monkey_test.txt
-p ,此命令用于指定包,若不指定则在整个系统中执行
-v ,用于反馈日志的详细程度级别
Level 0 : adb shell monkey -p 包名 -v 10 // 默认级别,仅提供启动、测试完成和最终结果等少量信息

Level 1 : adb shell monkey -p 包名 -v -v 10 // 提供较为详细的日志,包括每个发送到Activity的事件信息

Level 2 : adb shell monkey -p 包名 -v -v -v 10 // 提供最详细的日志,包括了测试中选中/未选中的Activity信息
1.程序无响应:ANR问题:在日志中搜索“ANR”
2.崩溃问题:在日志中搜索“CRASH”
3.其他问题:在日志中搜索”Exception”

9、模拟用户操作
点击事件
adb shell input keyevent <keycode>
滑动
adb shell input swipe 300 1000 300 500
文本输入
adb shell input text hello,world

10、截屏、录像:
adb shell screencap /system/test.png文件保存路径
adb shell screenrecord 文件保存路径

Android adb调试时,经常会遇到权限问题(failed for /system/lib/libmm-test.so, Read-only file system),即使Root设备,在向/system等系统文件夹操作时(比如push、rm等),依然可能会提示“Read-only file system”。adb remount 重新挂载系统分区,使系统分区重新可写或着重启 (http://www.metsky.com/archives/670.html

screenrecord 部分参数
--size width x height 设置分辨率 eg:1280x720
--bit-rate rate 视频比特率,默认值为 4Mbps,可以设6Mbps,这样质量更好 eg:adb shell screenrecord --bit-rate 6000000 /system/demo.mp4
--time-limit time 设置最大录制时长(以秒为单位)。默认值和最大值均为 180(3 分钟)

相关推荐