调试Android程序时,我们经常需要使用adb shell命令。adb是Android Debug Bridge的缩写,它充当调试桥梁的作用,就像一条连接开发机和设备之间的桥梁。

通过adb,我们可以在Eclipse中使用DDMS来调试Android程序,简单来说就是一种调试工具。它通过监听特定端口(如TCP 5554)来实现开发机和模拟器/设备之间的通讯。当我们运行Eclipse时,默认情况下会启动adb进程。

adb是一个C/S模式的程序,由三个部分组成:客户端、服务器和守护进程。其中客户端和服务器运行在开发机上,守护进程运行在模拟器或设备上。

通常,adb可执行文件位于/platform-tools/目录下,这是Android SDK的安装目录。为了方便使用,我们可以将adb路径添加到系统环境变量path中,例如:D:\sdk\platform-tools; 这样每次打开命令行工具时都可以直接使用adb命令,而不必进入adb目录。

以下是一些常用的adb命令,可以帮助我们进行调试和测试:

  • adb devices:查看当前连接的设备列表
  • adb install [apk文件路径]:安装一个应用程序
  • adb uninstall [包名]:卸载一个应用程序
  • adb logcat:查看设备的日志信息
  • adb shell am start [包名/类名]:启动一个应用程序
  • adb shell input text [文本]:模拟输入文本到设备
  • adb shell screencap [文件路径]:截屏并保存为图片文件
  • adb pull [设备文件路径] [本地文件路径]:从设备上复制文件到本地计算机
  • adb push [本地文件路径] [设备文件路径]:将本地文件复制到设备上

更详细的如下表~

一、常用简单的adb命令:

二、adb shell pm基本的命令:

三、adb shell am基本的命令:

三、adb shell dumpsys基本的命令:

四、关闭某项进程,以monkey为例:

五、最近12小时的资源情况:

六、录制屏幕命令:

七、截图命令:

八、input命令:

adb shell input:

  • text 输入文本
  • keyevent 输入事件
  • tap 点击
  • swipe 滑动

九、关于获取当前页面的信息:

十、生成当前页面的xml文本:

示例XML信息中的属性说明:

  • text:控件中显示的文本内容
  • class:控件的类型
  • package:包名
  • content-desc:说明
  • checkable:是否允许check
  • checked:check状态
  • clickable:是否允许click
  • enabled:控件状态
  • focusable:是否允许获取焦点
  • focused:是否获取到焦点
  • scrollable:是否允许滚动
  • long-clickable:是否允许长按
  • password:是否是密码控件
  • selected:select状态
  • bounds:控件绘制的长宽及位置四个数据,分成两组,分别是左上坐标和右下坐标

十一、打印页面的log信息:

十二、系统操作指令:

九、取日志:

十、日志过滤:

  1. 使用管道进程来查看日志:

    • adb logcat \| grep MyApp:过滤包含"MyApp"的日志
    • adb logcat \| grep -i myapp:忽略大小写,过滤包含"myapp"的日志
  2. 只抓取某个应用的命令:

    • adb logcat \| findstr app进程号:只显示特定应用的日志(在Windows上使用findstr
  3. 日志级别过滤:

    • 默认级别为V,输出所有日志最低级别。
    • 日志级别包括:D(Debug)、I(Info)、W(Warning)、E(Error)、F(Fatal)和S(Silent,最高级别,不输出任何日志)。

示例:如果想要查看手机上级别为错误的日志,可以使用以下命令:

  • adb logcat *:E(不区分大小写)
08-18 23:12