Android Debug Bridge (ADB)

ADB 是一款面向开发人员的重要工具,你可用它来与 Android 模拟机交互,还可处理连接的设备。 ADB 文档中介绍了许多功能,而下面是一些有用的命令:

  • adb kill-server 和 adb start-server - 必要时,停止和启动 ADB 服务
  • adb devices - 列出可用的设备(包括仿真器和附加到计算机的手机/平板电脑)
  • adb install - 安装 APK 文件
  • adb shell - 在 Android 系统中执行命令,例如:
    • adb shell pm list packages - 列出所有已安装的包
    • adb shell pm path com.example.someapp - 获取指定的包的文件系统路径
  • adb pull - 从仿真器或设备中提取文件

模拟应用跨屏

ADB 的另一种用途是模拟输入命令,例如在 Surface Duo 上实现应用的自动跨屏。 这些屏幕截图显示了跨屏过程,也就是握住窗口底部的手柄,将它朝铰链拖动,直到跨屏指示器覆盖两个屏幕:

使用 ADB 命令实现应用自动跨屏的三个步骤

可通过 ADB 使用以下命令模拟该手势:

adb shell input touchscreen swipe 675 1780 1350 1500 3000

前四个值是拖动手势的起点和终点坐标,最后一个值是所用的时间(毫秒)。 时间很重要,因为如果拖动速度太快,则应用会“抛到”另一侧屏幕上,而不是跨屏显示。 三秒很适合。

也可在 UI 测试期间模拟应用跨屏和其他手势。

使用 ADB 命令进行调试

按照以下步骤使用 ADB 命令进行调试:

  1. 查找仿真器设备 ID

    运行 C:\>adb devices

    emulator-5554   device
    
  2. 查找要调试的包。

    运行 adb shell pm list packages

    package:com.android.managedprovisioning
    package:com.android.smspush
    package:com.android.wallpaper.livepicker
    package:com.android.storagemanager
    package:com.android.bookmarkprovider
    package:com.android.settings
    package:com.android.calculator2
    package:com.android.vpndialogs
    package:com.android.email
    package:com.android.music
    
  3. 将应用设置为在启动时调试(注意 -w)

    运行 adb shell am set-debug-app -w com.microsoft.device.display.samples.masterdetail

  4. 在仿真器中启动应用。

    你将看到一个弹出窗口,显示应用正在等待要附加的调试。 每次都需要重新运行设置调试(或使用 --persistent 选项)。

  5. 连接 Android Studio 调试器

    在 Android Studio 菜单选项中,选择“ 运行 > 附加调试器”。 仿真器和进程应会被列出。

  6. 指向源代码并设置断点。