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后,你 ...
随机推荐
- 【luogu P4005 清华集训2017】小Y和地铁
题目描述 小 Y 是一个爱好旅行的 OIer.一天,她来到了一个新的城市.由于不熟悉那里的交通系统,她选择了坐地铁. 她发现每条地铁线路可以看成平面上的一条曲线,不同线路的交点处一定会设有 换乘站 . ...
- bzoj3825 NOI2017 游戏
题目背景 狂野飙车是小 L 最喜欢的游戏.与其他业余玩家不同的是,小 L 在玩游戏之余,还精于研究游戏的设计,因此他有着与众不同的游戏策略. 题目描述 小 L 计划进行nn 场游戏,每场游戏使用一张地 ...
- 【Uva 11280 飞到弗雷德里顿】
·你可以尽情地坐飞机,但停留次数遭到限制. ·英文题,述大意: 给出一张有向图,起点是输入的第一个城市,终点是输入的最后一个城市.给出q个询问,每个询问含一个t,表示 #include&l ...
- bzoj3944Sum
3944: Sum Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 5149 Solved: 1385[Submit][Status][Discuss ...
- hdu 5538(水)
Input The first line contains an integer T indicating the total number of test cases. First line of ...
- [bzoj4908][BeiJing2017]开车
来自FallDream的博客,未经允许,请勿转载,谢谢. 你有n辆车,分别a1, a2, ..., an位置和n个加油站,分别在b1, b2, ... ,bn .每个加油站只能支持一辆车的加油,所以你 ...
- Codeforces Round#402(Div.1)掉分记+题解
哎,今天第一次打div1 感觉头脑很不清醒... 看到第一题就蒙了,想了好久,怎么乱dp,倒过来插之类的...突然发现不就是一道sb二分吗.....sb二分看了二十分钟........ 然后第二题看了 ...
- splay模板(BZOJ3224)
用splay实现二叉搜索树的模板,支持插入,删除,找前缀后缀,x的排名以及第x名的数. #include <cstdio> #define l(x) t[x].s[0] #define r ...
- Java内存分配、管理小结
转载自:http://java-mzd.iteye.com/blog/848635
- webservice服务器端获取request对象的三种方式
有的时候在webservice里我们需要获取request对象和response对象,比如想要获得客户端的访问ip的时候就需要这么做,下面说三种方式,当然三种方式可能是针对不同方式部署webservi ...