5.0、Android Studio调试你的应用
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调试你的应用的更多相关文章
- Android Studio调试功能使用总结【转】
Android Studio调试功能使用总结[转] 这段时间一直在使用Intellij IDEA, 今天把调试区工具的使用方法记录于此. 先编译好要调试的程序. 1.设置断点 选定要设置断点的代码 ...
- Android Studio调试功能使用总结---转
Android Studio调试功能使用总结[转] 这段时间一直在使用Intellij IDEA, 今天把调试区工具的使用方法记录于此. 先编译好要调试的程序. 1.设置断点 选定要设置断点的代码 ...
- android studio 调试技巧(简直太好用)
android studio 调试技巧(简直太好用) 说到android studio的调试,很多人可能会说,这有什么可讲的不就是一个断点调试么,刚开始我也是这么认为的,直到我了解之后,才发现,调试原 ...
- 使用Android Studio调试UiAutomator过程中遇到的问题
声明: 这里纪录了个人学习和使用Android Studio调试UiAutomator过程中遇到遇到的问题,不定时进行更新,欢迎一起交流学习 1.Excution faild for task ‘:a ...
- 【转】你所不知道的Android Studio调试技巧
这篇写Android studio debug技巧个人觉得写得不错,转自:http://www.jianshu.com/p/011eb88f4e0d# Android Studio目前已经成为开发An ...
- Android Studio调试方法学习笔记
(注:本人所用Android Studio的Keymap已设为Eclipse copy) 1.设置断点 只有设置断点,才好定位要调试什么地方,否则找不到要调试的地方,无法调试.(调试过程中也可以增加断 ...
- 你所不知道的Android Studio调试技巧
转载:http://www.jianshu.com/p/011eb88f4e0d Android Studio目前已经成为开发Android的主要工具,用熟了可谓相当顺手.作为开发者,调试并发现bug ...
- Android调试系列—使用android studio调试smali代码
1.工具介绍 使用工具 android killer:用于反编译apk包,得到smali代码 android studio:调试smali代码工具,或者使用idea,android studio就是在 ...
- Android Studio 调试过程中快捷查看断点处变量值(Ctrl+Shift+I无效)?
当你在做Keymap到Eclipse后,在debug过程中,在Eclipse中我们很喜欢用Ctrl+Shift+I去查看一个运算或者调用的结果,这样用起来很方便.但是keymap到Eclipse后,你 ...
随机推荐
- permu(变态考试题)
题目描述 给定一个严格递增的序列T,求有多少个T的排列S满足:∑min(T[i],S[i])=k 输入输出格式 输入格式: 第一行两个数n,k 第二行n个数,表示T 输出格式: 一个正整数表示答案,答 ...
- 【BZOJ1951】【SDOI2010】古代猪文
Background "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" --选自猪王国民歌 很久很 ...
- bzoj 5212: [Zjoi2018]历史
Description 九条可怜是一个热爱阅读的女孩子. 这段时间,她看了一本非常有趣的小说,这本小说的架空世界引起了她的兴趣. 这个世界有n个城市,这n个城市被恰好n?1条双向道路联通,即任意两个城 ...
- bzoj 3672: [Noi2014]购票
Description 今年夏天,NOI在SZ市迎来了她30周岁的生日.来自全国 n 个城市的OIer们都会从各地出发,到SZ市参加这次盛会. 全国的城市构成了一棵以SZ市为根的有根树,每个城市与它的 ...
- 洛谷mNOIP模拟赛Day1-斐波那契
题目背景 大样例下发链接:http://pan.baidu.com/s/1c0LbQ2 密码:jigg 题目描述 小 C 养了一些很可爱的兔子. 有一天,小 C 突然发现兔子们都是严格按照伟大的数学家 ...
- poj1681 高斯消元
Painter's Problem Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5352 Accepted: 2588 ...
- bzoj2655calc 容斥+dp
2655: calc Time Limit: 30 Sec Memory Limit: 512 MBSubmit: 322 Solved: 197[Submit][Status][Discuss] ...
- python安装pip以及导入第三方包
python有着强大的第三方库,数量很多且功能强大. 最原始的办法是在官网上下载压缩包,解压,然后运行setup.py来进行安装. 显然这种方法很繁琐,不方便.因此有了包管理工具. pip是一个包管理 ...
- TensorFlow Serving-TensorFlow 服务
TensorFlow服务是一个用于服务机器学习模型的开源软件库.它处理机器学习的推断方面,在培训和管理他们的生命周期后采取模型,通过高性能,引用计数的查找表为客户端提供版本化访问. 可以同时提供多个模 ...
- C程序练习
1.编程从键盘任意输入两个时间(例如4时55分和1时25分),计算并输出这两个时间之间的间隔.要求不输出时间差的负号. #include<stdio.h> int main() { int ...