Android开发中的程序调试
来源:互联网 发布:网络与端口有何区别 编辑:程序博客网 时间:2024/06/03 23:39
一般来说我们有两种办法调试一个debuggable的apk;
其一是下好断点,然后用debug模式编译安装这个app;
其二是 attach process,点击Android Studio工具栏上的图标会弹出一个对话框,在对话框中选择要调试的进程。
第二种方法比较常用,我们可以在启动apk之后,直接下断点,然后attach process到制定进程,条件触发之后就可以直接进入调试模式。
条件断点
给程序添加断点后,右击断点,在对话框中输入条件值
异常断点调试
在有些情况下,我们只对某些特定的异常感兴趣,或者我们只对异常感兴趣;我们希望只要程序发生异常程序就能断下来;这样更问题的根源就一目了然了。
Android Studio给了我们这个能力!那就是异常断点!可以在特定异常发生的时候,直接让整个程序断下来;如果你对所有异常感兴趣,直接 Throwable 即可。
具体做法是,进入 Run -> View BreakPoints 或者使用快捷键打开断点设置窗口;如下图:
选中要关心的异常,或者点击“+”号添加一个异常断点。
点击左上角的 ➕ ,会出现一个选择框;选择Exception Breakpoint;然后会出现一个对话框,选择你感兴趣的异常:
字段断点 Field WatchPoint
在上面我们添加异常断点的时候,点击加号的时候,有四个选项;第一个就是我们前面所说的第二种方法断点的添加方式,第三个是异常断点,那么第二个 Field WatchPoint 是干什么的呢?
有没有这样一种场景:你发现某个值莫名其妙滴不知道什么时候被谁给修改了,罪魁祸首是谁?Java虽然是值传递,但是引用也可以是值;对象全部存放在堆上面,而堆是被所有线程共享的,因此在非常复杂的场景下,你根本不知道这些共享变量被谁修改了,这样非常危险;在多线程环境下,不变性是一个很重要的特性,我们看到高并发的语言诸如 Erlang, Scala 对于这种不变性都有着某种程度的支持。
我们使用Field WatchPoint的功能可以在某个Field被访问或者修改的时候让程序断下来;
0 0
- Android开发中的程序调试
- Android 程序的开发调试
- Android 程序的开发调试
- 使用GDB调试Android手机中的程序
- android USB调试进行开发程序
- win7 通过 wifi 调试开发 android 程序。
- Android开发中的断点调试的方法
- Android 开发系列:Android eclipse中程序调试
- 【Android 开发入门】使用Android模拟器预览调试程序
- 使用GDB调试Android中的C/C++程序
- 使用adb命令调试android设备中的c语言程序
- Android Ndk C/C++ 程序中的Logcat调试输出
- 《Android开发从零开始》——14.程序调试技术学习
- 使用GDB调试Android NDK开发的程序
- Android程序开发调试工具(一):dx和dexdump
- Android开发:一分钟学会使用Logcat调试程序
- Android开发学习笔记6--安卓程序调试方法
- 程序调试 -- MarsChen Android 开发教程学习笔记
- merge-sorted-array
- redis设置启动服务
- Java EE核心架构
- awk命令详解
- 上拉刷新,下拉加载
- Android开发中的程序调试
- leetcode 40. Combination Sum II
- 4.4、Android Studio在命令行运行Gradle
- ubuntu下转ttf, otf为woff文件
- Hadoop集群环境搭建
- UITextField 与 键盘
- 常用正则表达式示例
- android studio 的 Error occurred during initialization of VM Could not reserve enough space fo 解决办法
- [LC 94 144 145]Binary Tree Traversal ( preorder, inorder,postorder)