adb相关

adb的构成和工作原理

ADB,Android Debug Bridge,是一个调试工具

adb构成:

  • Client端:运行在开发机器中,即你的开发电脑,用来发送adb命令;
  • Daemon守护进程:运行在调试设备中,手机或模拟机,用来接收并执行adb命令
  • Server端:同样运行在开发机器中,用来管理Client端和手机的Daemon之间的通信

adb工作原理

  1. client端将命令发送给server端
  2. server端会将命令发送给daemon端
  3. daemon端执行命令,并将执行结果返回给server端
  4. server端将结果再返回给client端

【小结】adb工具可以在电脑通过终端命令操作安卓手机/模拟器

adb常用命令

获取包名和界面名

  • 包名和页面名的概念
    • 包名(package):决定程序的唯一性(不是应用的名字)
    • 界面名(activity):目前可以理解为,一个界面名对应一个界面
  • 如何获取包名和应用名

Mac/Linux:

adb she1l dumpsys window windows | grep mFocusedApp

Windows:

adb she1l dumpsys window windows | findstr mFocusedApp
  • 应用场景:

               自动化测试需要通过代码的形式告诉手机测试哪个应用程序的哪一个界面,所以需要通过这个命令进行获取

示例:
1. 现在模拟机或手机中打开《设置》应用程序
2. 输入对应平台的命令
结果如下:

mFocusedApp=AppwindowToken{5B309da token=Token{2e2fa785ActivityRecord{2928d4fc u0 com.android.settings/.Settings t1127}}}

其中:
包名为:com.android.settings
界面名为:.Settings

文件传输

  • 从电脑发送文件到手机
adb push 电脑的文件路径 手机的文件夹路径
  • 从手机中拉取文件到电脑
adb pull 手机的文件路径 电脑的文件夹路径
  • 应用场景
    • 如果希望将电脑的某个文件,发送到手机,使用 adb push 命令
    • 如果希望将手机上的某个文件,发送到电脑,使用 adb pull 命令

 获取app启动时间

  • 命令格式
adb shell am start -W 包名/启动名

1. ThisTime:该界面(activity)启动耗时(毫秒)
2. TotalTime:应用自身启动耗时 = ThisTime + 应用application等资源启动时间(毫秒)
3. WaitTime:系统启动应用耗时 = TotalTime + 系统资源启动时间(毫秒)

  • 应用场景
    • 如果企业对应用程序的启动速度有要求,则需要使用这个命令进行测试
    • 测试标准:参照同类软件,启动时间不能超出一倍即可

获取手机日志

  • 如何获取
adb logcat
  • 使用步骤
    •  打开需要测试的应用程序
    • 找到触发bug 的位置
    • 使用查看日志命令
    • 触发bug
    • 获取日志信息
  • 应用场景
    • 将bug的日志信息发送给开发人员,便于开发人员定位bug

其他命令【了解】

序号命令说明
01adb install 路径/xx.apk安装app到手机
02adb uninstall 包名卸载手机上的app,需要指定包名
03adb devices获取当前电脑已经连接设备和对应的设备号
04adb shell进入到安卓手机内部的linux系统命令行中
05adb start-server启动adb客户端,出bug时使用可以重启服务器,先关闭再启动
06adb kill-server停止adb客户端,出bug时使用可以重启服务器,先关闭再启动
07adb --help查看adb帮助,命令记不清楚时有用

### ADB 的安装与配置 Android Debug Bridge(ADB)是 Android SDK 中的重要命令行工具,用于与 Android 设备进行交互。要开始使用 ADB,首先需要确保已经安装了 Android SDK,并且将 ADB 添加到系统的环境变量中。这样可以在任何目录下直接运行 ADB 命令。 在 Windows 系统上,通常可以通过修改系统环境变量 PATH 来添加 ADB 所在的路径;而在 macOS 或 Linux 上,则可以通过编辑 `.bash_profile` 或 `.bashrc` 文件来实现[^1]。 ### 启动和停止 ADB 服务 为了确保 ADB 正常工作,有时需要手动启动或重启 ADB 服务。例如,在遇到连接问题时,可以先尝试杀死当前的 ADB 服务并重新启动它: ```shell $ adb kill-server $ adb start-server ``` 执行这些命令后,应该能够解决一些常见的连接问题。如果设备未被正确识别,也可以尝试拔插 USB 数据线或者切换 USB 调试模式[^2]。 ### 查看连接设备 当 ADB 服务正常运行时,可以通过以下命令查看当前连接的所有设备: ```shell $ adb devices ``` 该命令会列出所有已连接的模拟器和真实设备,包括它们的状态信息。如果设备没有出现在列表中,可能需要检查 USB 连接是否稳定,以及设备上的开发者选项和 USB 调试模式是否开启[^4]。 ### 文件传输操作 利用 ADB 可以轻松地从设备中拉取文件到本地计算机,或者推送文件到设备上。比如导出设备中的截图文件,可以使用如下命令: ```shell $ adb pull /sdcard/screenshot.png <存放的路径> ``` 这里的 `<存放的路径>` 需要替换为你希望保存文件的具体位置。同样地,若想上传文件至设备内部存储,可采用 `adb push` 指令完成对应的操作[^3]。 ### 应用调试与管理 除了基本的文件管理和设备控制外,ADB 还支持应用程序的安装、卸载及调试等功能。对于开发人员来说,这非常有用,因为可以直接通过命令行部署应用到测试设备上,并实时监控其行为。此外,还可以利用 ADB shell 进入设备终端,执行各种 Linux 命令来进一步诊断问题。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值