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();...@Overridepublic 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在到达这个断点时不会停止。

本文作者:宋志辉
个人微博:点击进入

转载于:https://www.cnblogs.com/hainange/p/6153427.html

5.0、Android Studio调试你的应用相关推荐

  1. android studio 自动try,Catch Try让我在Android Studio调试中感到困惑

    我试图在Android Studio中调试这段代码.这一切看起来都非常简单,但尝试中的'return sb1'不允许我打破它(带有x的红点)并且说它不可执行.Catch Try让我在Android S ...

  2. Android逆向笔记-使用Android Studio调试Smali代码(方式一)

    这里我使用Android Studio写了这样的一个程序: 然后点下BUTTON后: 下面写下如何调试这种程序. 开发环境: win 10: 使用的模拟器是雷神模拟器: Android Studio版 ...

  3. [免费专栏] Android安全之动态调试APP的一些技巧「Android Studio调试」

    也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 Android安全付费专栏长期更新,本篇最新内容请前往: [ ...

  4. 用Android Studio调试Framework层代码

    Android程序员不得不知的调试技巧. 本文以webview loadUrl和域名解析为例,介绍配合使用LLDB和Android Studio调试Framework代码的技巧. java 层调试 首 ...

  5. 在Mac上使用android studio调试android手机

    一.环境准备 1.安卓手机:Android版本为9 2.MacBook Pro 3.安卓数据线 二.adb介绍 1.adb概念 adb:全称是Android Debug Bridge,意思是Andro ...

  6. 使用Android Studio调试系统应用之TvSettings(一):移植

    文章目录 1.前言 相关文章 2.基本思路 3.调试平台 4.获取App源码 5.分析配置文件 6.配置文件初步分析结果 7.构建 TvSettings Project 7.1.按配置新建项目 7.2 ...

  7. 关于vivo 8.0和miui新系统android studio调试出现“包解析错误”的bug的解决办法

    最近在工作中遇到了调试的时候将app安装到vivo 手机上,出现了包解析错误的问题.一般来说这种问题只会出现在手机版本 小于 app所要求的最低版本的手机上.但是此vivo手机的版本是8.0,很显然不 ...

  8. android studio 调试c/c++代码小记

    使用的android studio3.0.1版本,sdk 27. 新建的测试程序,勾选了c++支持,默认有native_lib.cpp. 1.在cpp中添加了测试的native代码,提示No impl ...

  9. Android逆向笔记-使用Android Studio调试Smali代码(方式二)

    这里我使用Android Studio写了这样的一个程序: 这里我使用Android Studio写了这样的一个程序: 然后点下BUTTON后: 下面写下如何调试这种程序. 开发环境: win 10: ...

最新文章

  1. linux 压缩 解压zip 命令
  2. cordova 发布 android release 签名打包
  3. 8.Springcloud的Feign嵌入Ribbon实现接口式调用(改变restTemplate和Ribbon的调用方式)...
  4. grub配置文件丢失的解决方法
  5. C# 添加,修改,删除Xml节点
  6. Oracle数据库管理之创建和删除数据库
  7. 机器学习算法之——卷积神经网络(CNN)原理讲解
  8. Detours学习之七:Detours示例程序构建
  9. 电机正反转c语言注释,直流电机正反转C程序.doc
  10. processing图片粒子化_谈谈文字图片粒子化
  11. python 类调用不存在的方法_找不到Python方法,但在类中定义
  12. 【解决方案】如何通过EasyCVR安防视频云服务搭建基于移动互联网的阳光厨房云视频直播方案?
  13. 1548 A Simple Problem with Integers
  14. Apache2 虚拟主机 详解
  15. systeminfo命令
  16. 流量计算机标准,1g流量等于多少mb 1G有多大?(电脑与手机)
  17. 给百度地图每个市添加颜色
  18. 重磅:3D光影已经完善,LayaAir2.6.0重构了阴影系统!
  19. 全自动化学加药装置循环水应用介绍
  20. (B站动力节点老杜MySQL教程)MySQL课堂笔记-day01.txt

热门文章

  1. java 与c 运行效率_Java语言与C语言代码运行效率的比较
  2. url全局地址封装 vue_vue设置全局访问接口API地址操作
  3. sparkstreaming监听hdfs目录如何终止_Spark笔试题:Spark Streaming 反压机制
  4. python语言基础与应用 mooc答案_Python语言基础与应用_中国大学mooc慕课_期末考试选修课答案...
  5. linux 插件 概念,服务端概念功能介绍
  6. mysql slave lock 跳过_处理 MySQL 因为 SLAVE 崩溃导致需要手动跳过 GTID 的问题 | 关于 GTID...
  7. 什么是html的编码方式,HTML网页中“上”是什么编码方式啊?网页中&# 爱问知识人...
  8. 内部同步 外部同步 java_如何用匿名内部类实现 Java 同步回调
  9. 基于c语言的linux嵌入式开发入门
  10. wdcp导出mysql_phpmyadmin导入导出mysql(只适用WDCP系统)