Android Studio包含了一个调试器,允许你调试运行在Android虚拟机或连接的Android设备的应用。通过Android Studio的调试器,你可以:

1、 选择你调试设备的app

2、 为你的代码设置断点

3、 在运行时检测变量和表达式

4、 截图和录像

通过点击工具栏中的Debug按钮来开始调试,Android Studio生成一个APK,并且使用调试key进行签名,安装到选定的设备中运行并打开调试Debug窗口。

如果点击Debug后,在Select Deployment Target窗口没有出现任何设备,你需要连接一台设备或者创建一个虚拟机。



如果你的app已经运行在一个连接的设备或虚拟机中,你可以通过如下方式开始运行:

1、 点击Attach debugger to Android process

2、 在Choose Process 对话框,选择进程。

3、 点击OK

Debug窗口出现。



4、 点击Terminate结束调试。

使用系统日志

系统日志显示了你调试app时的系统信息。这些消息包含你app运行在设备中的信息。如果你想用系统日志来调试你的app,确保你写了打印日志的相关代码。

在你的代码中打印日志消息

在你的代码中打印日志消息,使用Log类。如下:

import android.util.Log;
...
public class MyActivity extends Activity {
private static final String TAG = MyActivity.class.getSimpleName();
...
@Override
public void onCreate(Bundle savedInstanceState) {
if (savedInstanceState != null) {
Log.d(TAG, "onCreate() Restoring previous state");
/* restore state */
} else {
Log.d(TAG, "onCreate() No saved state available");
/* initialize app */
}
}
}

在开发过程中,你可以捕获异常并打印stack trace到系统日志:

void someOtherMethod() {
try {
...
} catch (SomeException e) {
Log.d(TAG, "someOtherMethod()", e);
}
}

查看系统日志

在Android DDMS工具窗口中查看系统日志:

1、 在调试模式启动你的APP

2、 点击Android Monitor

3、 如果在Logcat视图中系统日志是空的,点击Restart。

Android DDMS工具窗口给你从Android Studio中访问DDMS某些特性的权限。

系统日志显示来自Android服务和其他Android应用的消息。通过以下方式进行过滤:

1、 显示特定进程的日志消息,在Devices视图中选择相应进程,然后点击Click Show Logcat from Selected Process。如果你的Devices视图没出点,点击Android DDMS工具窗口右边的Restore Devices View,这个按钮仅仅在你隐藏了Devices窗口时才可用。

2、 也可以根据log level来过滤

3、 也可以在输入框中输入特定的字符串,点击回车。

断点

Android Studio支持多种不同的断点来触发不同的调试动作。最常用的是行断点,应用在特定的行停止。暂停时,你可以检查变量,表达式,也可以单步执行来确定运行错误的原因。

添加一个行断点,可以按照以下方式:

1、 找到你需要执行到暂停的行,点击代码编辑器的左边,或者将光标移动到指定的行,店家Ctrl+F8。

2、 如果你的应用已经运行,直接单击Attach debugger to Android process。



当你的代码执行到断点的位置,Android Studio暂停了你的应用的执行。你可以使用调试器中的工具来查找错误的原因。

查看和配置断点

查看所有的断点和配置断点设置,点击Debug窗口左边的View Breakpoints,如图:



Breakpoints窗口允许你开启和禁用左边列表的每个断点。如果断点被禁用,Android Studio在到达这个断点时不会停止。

本文作者:宋志辉

个人微博:点击进入

5.0、Android Studio调试你的应用的更多相关文章

  1. Android Studio调试功能使用总结【转】

    Android Studio调试功能使用总结[转]   这段时间一直在使用Intellij IDEA, 今天把调试区工具的使用方法记录于此. 先编译好要调试的程序. 1.设置断点 选定要设置断点的代码 ...

  2. Android Studio调试功能使用总结---转

    Android Studio调试功能使用总结[转]   这段时间一直在使用Intellij IDEA, 今天把调试区工具的使用方法记录于此. 先编译好要调试的程序. 1.设置断点 选定要设置断点的代码 ...

  3. android studio 调试技巧(简直太好用)

    android studio 调试技巧(简直太好用) 说到android studio的调试,很多人可能会说,这有什么可讲的不就是一个断点调试么,刚开始我也是这么认为的,直到我了解之后,才发现,调试原 ...

  4. 使用Android Studio调试UiAutomator过程中遇到的问题

    声明: 这里纪录了个人学习和使用Android Studio调试UiAutomator过程中遇到遇到的问题,不定时进行更新,欢迎一起交流学习 1.Excution faild for task ‘:a ...

  5. 【转】你所不知道的Android Studio调试技巧

    这篇写Android studio debug技巧个人觉得写得不错,转自:http://www.jianshu.com/p/011eb88f4e0d# Android Studio目前已经成为开发An ...

  6. Android Studio调试方法学习笔记

    (注:本人所用Android Studio的Keymap已设为Eclipse copy) 1.设置断点 只有设置断点,才好定位要调试什么地方,否则找不到要调试的地方,无法调试.(调试过程中也可以增加断 ...

  7. 你所不知道的Android Studio调试技巧

    转载:http://www.jianshu.com/p/011eb88f4e0d Android Studio目前已经成为开发Android的主要工具,用熟了可谓相当顺手.作为开发者,调试并发现bug ...

  8. Android调试系列—使用android studio调试smali代码

    1.工具介绍 使用工具 android killer:用于反编译apk包,得到smali代码 android studio:调试smali代码工具,或者使用idea,android studio就是在 ...

  9. Android Studio 调试过程中快捷查看断点处变量值(Ctrl+Shift+I无效)?

    当你在做Keymap到Eclipse后,在debug过程中,在Eclipse中我们很喜欢用Ctrl+Shift+I去查看一个运算或者调用的结果,这样用起来很方便.但是keymap到Eclipse后,你 ...

随机推荐

  1. bzoj 3214: [Zjoi2013]丽洁体

    Description 平时的练习和考试中,我们经常会碰上这样的题:命题人给出一个例句,要我们类比着写句子.这种往往被称为仿 写的题,不单单出现在小学生的考试中,也有时会出现在中考中.许多同学都喜欢做 ...

  2. 【网络流】【BZOJ1070】【SCOI2007】修车

    原题链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1070 题意:问你如何分配老司机使得每部车的等待时间之和最短. 解题思路:本题不易正做,考虑 ...

  3. ●BOZJ 4456 [Zjoi2016]旅行者

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=4456 题解: 分治好题.大致做法如下:对于一开始的矩形区域,过较长边的中点把矩形区域分为两个 ...

  4. SpringCloud学习之Zuul统一异常处理及回退

    一.Filter中统一异常处理 其实在SpringCloud的Edgware SR2版本中对于ZuulFilter中的错误有统一的处理,但是在实际开发当中对于错误的响应方式,我想每个团队都有自己的处理 ...

  5. Delphi下DLL编程知识(转)

    一.  DLL和系统变量     在 System 单元声明的变量中,有几个对DLL编程有特殊影响.IsLibrary 可以检测代码是执行在应用程序中还是执行在DLL中,在应用程序中 IsLibrar ...

  6. koa2+webSocket 聊天室

    做了一个简单的的聊天室,用来看看 koa和 websocket的使用还是挺好的,已经放到gitHub. https://github.com/zhaowanhua/koa2WebSocket

  7. ExecutorService

    接口 java.util.concurrent.ExecutorService 表述了异步执行的机制,并且可以让任务在后台执行.壹個 ExecutorService 实例因此特别像壹個线程池.事实上, ...

  8. 初识RabbitMQ系列之二:下载安装

    一:Erlang安装 因为RabbitMQ 是Erlang语言开发的,所以首先要装上Erlang的环境 1)下载Erlang    下载官网:http://www.erlang.org/downloa ...

  9. Python 头部 #!/usr/bin/python 和 #!/usr/bin/env 的区别

    这个网址 https://www.cnblogs.com/scofi/p/4867851.html 讲述了Python 头部 #!/usr/bin/python 和 #!/usr/bin/env 的区 ...

  10. SVN/GIT精简使用教程

        MAC 显示点文件 显示:defaults write com.apple.finder AppleShowAllFiles -bool true 隐藏:defaults write com. ...