20210413-面试官常用的adb命令,你知道几个?

why

1.测试App端占比例非常打
2.手机类型很多(android,ios等),种类包含手机*,平板,车载机器
notice:adb 针对android设备

adb

adb简介

Android Debug Bridge简称adb

adb意义

Android sdk 中提供的用于管理模拟器真机状态的工具

adb原理

当您启动某个 adb 客户端时,客户端会先检查是否有 adb 服务器进程正在运行。如果没有,它将启动服务器进程。服务器在启动后会与本地 TCP 端口 5037 绑定,并监听 adb 客户端发出的命令 - 所有 adb 客户端均通过端口 5037 与 adb 服务器通信。

然后,服务器会与所有正在运行的设备建立连接。它通过扫描 5555 到 5585 之间(该范围供前 16 个模拟器使用)的奇数号端口查找模拟器。服务器一旦发现 adb 守护进程 (adbd),便会与相应的端口建立连接。请注意,每个模拟器都使用一对按顺序排列的端口 - 用于控制台连接的偶数号端口和用于 adb 连接的奇数号端口。例如:

  • 模拟器 1,控制台:5554
  • 模拟器 1,adb:5555
  • 模拟器 2,控制台:5556
  • 模拟器 2,adb:5557
  • 依此类推…

如上所示,在端口 5555 处与 adb 连接的模拟器与控制台监听端口为 5554 的模拟器是同一个。

服务器与所有设备均建立连接后,您便可以使用 adb 命令访问这些设备。由于服务器管理与设备的连接,并处理来自多个 adb 客户端的命令,因此您可以从任意客户端(或从某个脚本)控制任意设备。

我们在使用的时候需要安装一个ADB驱动,我的理解是,这个驱动是用来检测安卓设备的,一旦有安卓设备接到USB端口,ADB驱动就会将其挂载到相应的设备列表,这样ADB Sever就可以操作这个设备了,所以ADB驱动是一定需要的。

环境搭建

参考安装预习贴:Android Studio安装(推荐使用这种方法安装SDK)
1.安装JAVA

%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin

2.安装ANDROID_HOME

Android SDK Build_Tools
Android Emulator
Android SDK Platform-Tools
Android SDK Tools

notice:
1.注意Emulator环境变量位置,可能会报找不到文件错误

命令

安装install/uninstall

adb install (-r) xxx.apk
adb uninstall (-k) 包名(com.xueqiu.adnroid)

-r: 是否覆盖安装
-k 是否删除配置文件

安装 adb devices

device:正常
offline:设备无响应--一般通过kill-server+adb devices解决
unknow:未知
as(android-studio 以下简称as):emulator-xxxx
三方(mumu,夜神,等):ip:端口
真机:不定长度

查看模拟器芯片 ro.product.cpu.abi

adb shell getprop ro.product.cpu.abi

参考贴:【Android-studio】常见问题--安装apk报"INSTALL_FAILED_NO_MATCHING_ABIS"

查看应用列表 packages

显示所有应用:adb shell pm list packages
显示系统自带应用:adb shell pm list packages -f
显示第三方应用:adb shell pm list packages -3

获取包名 activity

mac/win
adb shell dumpsys activity |grep(findstr) "mFocusedActivity"

参考贴:获取activity方法(adb,aapt)

快速启动 start

adb shell am start -n <包名>/<avticity名>

验证获取包和应用是否正确,能否快速启动

强制停止应用 force-stop

adb shell am force-stop <包名> (com.xueqiu.android)

设备与电脑传输文件 pull/push

notice:跳出android系统执行,否则提示无adb not found

电脑->设备

adb push <电脑路径><设备路径>

设备->电脑

adb pull <设备路径><电脑路径>

设备截图 screencap

notice:截当前图,非长图

adb shell screencap <设备>
adb pull <图地址> <电脑地址>

日志 logcat

adb logcat -c 清除日志
adb logcat -v time >文件路径    解释:logcat输入的路径文件

性能参数 top,cpuinfo,meminfo

adb shell top |grep ”包名“
adb shell dumpsys cpuinfo --cpu信息
adb shell dumpsys meminfo  --内存信息

image 老师,配置这个环境变量是干嘛用的啊?

这个是AndroidSDK的环境配置,配置以后可以在CMD命令行直接使用adb命令,不需要再进入到对应文件夹。

tools包括测试、调试、第三方工具。模拟器、数据管理工具等。
所以我把它设置成环境变量

关闭