安卓应用调试(二)-Android Device Monitor

第二章 Android Device Monitor

Android Studio的Android Device Monitor(简称ADM)是我们动态调试安卓程序时重要的帮手。它提供了很多动态调试的工具和调试方法。上一章介绍的log调试,就需要通过ADM的logcat显示调试内容;它还可以查看系统内存的占用情况,可以看到系统CPU的运行情况。

ADM可以在两个地方工作:


1. 在Android Studio集成窗口:在Android Studio下方的窗口中,点击Android Monitor,就能在Android Studio中显示;

在第一个框中,选中我们要调试的设备,第二个框中选中我们要调试的应用,


2. ADM单独运行:通过Android Studio的菜单栏启动;

独立运行后,就像这样,

2.1 Logcat功能

Logcat用来查看程序输出的log。我们可以选择log的类型(verbose debug info warning error)来过滤log。

安卓应用调试(二)-Android Device Monitor_第1张图片

当选择verbose时,logcat会输出所有类型的log;
当选择debug时,logcat会输出debug info warning error等类型的log;
当选择info时,logcat会输出info warning error等类型的log;
当选择warning时,logcat会输出warning error等类型的log;
当选择error时,logcat会输出error等类型的log;

有时候log太多,会影响我们的判断,可以自定义过滤器。


1. 选择编辑过滤器,

开发者官网1


2. 指定过滤器的名字,输入log中包含关键字的内容,

安卓应用调试(二)-Android Device Monitor_第2张图片

以后logcat获取的log,就只有匹配过滤器中关键字的log了。

还有一个非常有用的功能是重启ADB。ADB有时候会因为种种原因而无法与设备相连,这时候通过下图的按钮重启ADB就能解决问题。

安卓应用调试(二)-Android Device Monitor_第3张图片

2.2 Android Studio中的ADM

在Android Studio集成界面,ADM还提供了方便的设备截屏、设备录像带功能。

设备截屏能将设备上正在显示的内容以截取图片或视频的形式保存到电脑上。

开发者官网1

  • memory能够实时监测当前被调试的应用内存使用大小,
安卓应用调试(二)-Android Device Monitor_第4张图片

  • CPU能够实时监测当前被调试的应用CPU占用大小,

  • Network能够实时监测当前被调试的应用网络使用情况,
安卓应用调试(二)-Android Device Monitor_第5张图片

2.3 独立运行的ADM

除了logcat,独立运行的ADM提供了更多的调试工具。点击菜单栏的添加视图图标,可以为ADM添加上DDMSHierarchy ViewDebugPixel Perfect等高级的调试窗口。

DDMS是谷歌提供的一个非常全面的调试工具,它能和安卓虚拟机通信,获取最原始的调试数据。

  1. 选择要调试的设备和应用;
  2. 点击DDMS的菜单栏,启动不同的高级调试功能;
    安卓应用调试(二)-Android Device Monitor_第6张图片

DDMS有很多高级的调试功能:

  • Debug功能:连接到debug版本的应用,可以使用打断点、逐步跟踪的静态调试方式;

  • heap功能:监测当前内存的使用,手动发起内存回收,保存内存分配的所有状态到电脑上,用其他高级工具做进一步分析,查找内存泄漏;

安卓应用调试(二)-Android Device Monitor_第7张图片

  • thread功能:查看应用所有的线程,获取线程当前的运行信息;

  • UI元素分析功能:分析显示界面指定窗口的UI元素布局信息,帮助开发者进行界面布局的调试;

    安卓应用调试(二)-Android Device Monitor_第8张图片

  • OpenGL trace功能:记录应用中OpenGL调用的信息;

    安卓应用调试(二)-Android Device Monitor_第9张图片

以上这些功能都是高级的调试功能,每一个都可以开设单独的专题进行深入的讲解。因为本文针对的同学是刚开始接触调试的新手,所以这里就不详细的介绍用法了。我们将在调试的高级篇章中逐个详细介绍。

你可能感兴趣的:(android,android,调试,应用,Studio,ADM)