简单实用的Android studio 调试技巧
说到android studio的调试,很多人可能会说,这有什么可讲的不就是一个断点调试么,刚开始我也是这么认为的,直到我了解之后,才发现,调试原来可以玩的这么牛。下面我分别一一做介绍。
条件断点(Conditional Breakpoints)
这个调试模式是我最喜欢的,简直不能再方便了,以前遇到在循环里面打断点,需要看某个条件下的值,我只能一遍遍点击,直到满足条件。
那么这个条件断点改怎么用呢,在你的断点上点击右键,就会弹出一个选择对话框,在里面的condition框里面填写上你所需要中断的条件即可,这有程序就会在满足你的条件下才会断点停下。下面放张动态图,一看就明白,之后的几个技巧也都会附一张动态图来形象的展示。
快捷键
•点击鼠标右键
日志断点(Logging Breakpoints)
这个模式也相当有用,之前调试程序的时候,如果需要输出一些变量的值,总是需要在代码中写Log,然后重新运行程序,这有才能看到新的输出结果,现在有了日志断点这个神器,就不需要了。下面介绍如何操作,首先还是在断点上点击鼠标右键,把suspend置为非选中状态,然后在下面的Log evaluated Expression填写上你需要输出的信息
快捷键
•点击鼠标右键,选择suspend
临时断点(Temporary Breakpoints)
这种断点在你第一次断点停下之后,就会被移除,也就是在调试过程中只会断掉一次
快捷键
•鼠标:ALT+鼠标左键 在断点区点击
•mac:Cmd+Alt+Shift+F8
•Windows/Linux: Ctrl+Alt+Shift+F8
失效断点(Disable Breakpoints)
这种断点适用于你不想删除这个断点,但是又不想让这个断点执行,所以暂时让他失效掉,这个功能,感觉不会很常用,毕竟创建一个断点也就是点击一下的事。
快捷键
•鼠标:ALT+鼠标左键在断点上点击
(附着调试)Attach Debugger
这个在不知道之前,我调试程序总是需要点击调试模式,然后让程序重新运行,然后会忍受相当慢的启动过程,直到我遇到这个模式。
在这个模式下,你不需要重启app,直接点击,就可以调试,而且在遇到别人在测试你的app,这时候遇到问题,你只需要插在你的电脑上,开启这个,就可以直接断点调试了,非常方便。
快捷键
•鼠标:点击build->Attach to Android Process 选择app所在的进程
计算表达式(Evaluate Expression)
这个功能用来在调试过程中查看变量的值,或者可以计算任何复杂自定义表达式的。这个功能在调试的时候,也非常有用,比如以前我想得到一个变量的值,我总需要通过底部variable中的this指针,然后找到成员变量,而有了这个之后,你可以随意观察变量,同时做一些表达式的计算
快捷键
•Alt+F8
观察变量(Inspect Variable)
这个功能直接可以观察某个变量的值,而不需要打开上面Evaluate Expression这个的对话框,更加快捷
快捷键
•Alt+鼠标左键 在变量上面点击
标记object(Mark Object)
在调试的过程中,这个方式允许你给某个特定的object打标签,以便后面的断点里面可以进行识别这个变量
快捷键
•鼠标右键,选择mark object
•MAC:F3
•windows/linux:F11
以上所述是小编给大家介绍的简单实用的Android studio 调试技巧,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
相关推荐
-
使用Chrome浏览器调试Android App详解
个人一直对Chrome情有独钟,Chrome除了更快之外,对开发者的支持更友好.内置强大的Developer Tools,相信Web开发简直爱不释手!而且Chrome Store里提供各种各样的插件,没有你用不到,只有你想不到.现在任何事基本Chrome全部办的到,有时候就在想,如果可以用Chrome调试Android App该多方便,而如今Facebook刚刚开源了一个工具Stetho,从此Chrome调试Android不再是梦. 调试工具 在Android开发中除了一些官方自带的一些调试工具
-
Android开发笔记之:一分钟学会使用Logcat调试程序的详解
这是个很简单的问题,但每次隔一段时间后使用起来总是会出点乱子.这里记录下Logcat的步骤:1,在Activity里申明tag变量(名字其实是随便的,如下:private static final String tag="yan";2,需要使用logcat输出信息时:Log.i(tag, "屏幕宽度:"+display.getWidth()+" 屏幕高度:"+display.getHeight());3, 双击Logcat,点击"+&q
-
Android开发中一个简单实用的调试应用技巧分享
前言 大家应该都有所体会,在应用开发中,我们常常会进行日志打印或者debug调试,以此来分析运行时的一些信息,便于发现bug和问题.Android Studio的Debug功能很好用,但是有时候有些情况下,就显得不是那么快捷和便利. 比如 我们调试的点在应用一打开的时候,很靠前,例如Application的onCreate方法中,以至于我们不能足够快的设置进程为debug模式 虽然上面的情况可以通过Android Studio的debug运行来解决,但是如果项目很大的话,运行起来也会比较耽误时间
-
Android笔记之:App调试的几个命令的实践与分析
在Android的应用开发中,我们会用到各种代码调试:其实在Android的开发之后,我们可能会碰到一些随机的问题,如cpu过高,内存泄露等,我们无法简单的进行代码调试,我们需要一个系统日志等等,下面我把握工作中碰到的几个常用命令和方法给大家演示实践一下. 1.logcat命令这个命令最简单常用,可查看帮助,我不多说,如果需要打印时间,加参数-v time adb logcat -v time 2.bugreport命令这个命令也非常简单,但是在实际应用中非常有用,会有从开机之后详细的dumps
-
android调试工具DDMS的使用详解
具体可见http://developer.android.com/tools/debugging/ddms.html. DDMS为IDE和emultor.真正的android设备架起来了一座桥梁.开发人员可以通过DDMS看到目标机器上运行的进程/现成状态,可以 android的屏幕到开发机上,可以看进程的heap信息,可以查看logcat信息,可以查看进程分配内存情况,可以像目标机发送短信以及打电话,可 以像android开发发送地理位置信息.可以像gdb一样attach某一个进程调试. SDK
-
android调试工具adb命令大全
一.adb介绍SDK的Tools文件夹下包含着Android模拟器操作的重要命令adb,adb的全称为(Android Debug Bridge就是调试桥的作用.通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序.借助这个工具,我们可以管理设备或手机模拟器的状态.还可以进行以下的操作: 1.快速更新设备或手机模拟器中的代码,如应用或Android 系统升级: 2.在设备上运行shell命令: 3.管理设备或手机模拟器上的预定端口: 4.在设备或手机模拟器上复制或粘贴文件
-
简单实用的Android studio 调试技巧
说到android studio的调试,很多人可能会说,这有什么可讲的不就是一个断点调试么,刚开始我也是这么认为的,直到我了解之后,才发现,调试原来可以玩的这么牛.下面我分别一一做介绍. 条件断点(Conditional Breakpoints) 这个调试模式是我最喜欢的,简直不能再方便了,以前遇到在循环里面打断点,需要看某个条件下的值,我只能一遍遍点击,直到满足条件. 那么这个条件断点改怎么用呢,在你的断点上点击右键,就会弹出一个选择对话框,在里面的condition框里面填写上你所需要中断的
-
Visual Studio调试技巧汇总
调试是软件开发周期中很重要的一部分.它具有挑战性,同时也很让人疑惑和烦恼.总的来说,对于稍大一点的程序,调试是不可避免的.最近几年,调试工具的发展让很多调试任务变的越来越简单和省时. 1 悬停鼠标查看表达式值 调试是很有挑战性的.比如在函数内逐步运行可以看出哪里出错,查看堆栈信息可以知道函数被谁调用等等. 但是无论哪种情况下,查看表达式和局部变量的值都是很麻烦的(把表达式和局部变量放到watch窗口里). 一种更简单的方法,把鼠标停在所需查看的数据上.如果是类或结构,那么点击展开可以很方便快速地
-
Android Studio调试功能使用汇总
本文为大家汇总了Android Studio调试功能的使用方法,供大家参考,具体内容如下 1.设置断点 选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可. 2.开启调试会话 点击红色箭头指向的小虫子,开始进入调试. IDE下方出现Debug视图,红色的箭头指向的是现在调试程序停留的代码行,方法f2()中,程序的第11行.红色箭头悬停的区域是程序的方法调用栈区.在这个区域中显示了程序执行到断点处所调用过的所用方法,越下面的方法被调用的越早. 3.单步调试 3.1 step over 点击红
-
Android Studio调试Gradle插件详情
前言: 使用ASM在编译期修改字节码来完成各种功能(统计方法耗时.全埋点统计...),就需要开发Gradle插件.开发插件中遇到问题排查使用日志输出效率太低了,能断点调试的话就更好了.其实已经有很多文章写了调试插件的方法,但是自己照着他们的步骤下来还是遇到一些问题,把这些问题记录下来方便大家少走弯路. Android Studio版本是3.5.2,Gradle版本是3.5.1 1.点击[Run]->[Edit Configurations...]: 2.然后点击左上角的[+],选择[Remote
-
简单实用的Android UI微博动态点赞效果
说起空间动态.微博的点赞效果,网上也是很泛滥,各种实现与效果一大堆.而详细实现的部分,讲述的也是参差不齐,另一方面估计也有很多大侠也不屑一顾,觉得完全没必要单独开篇来写和讲解吧.毕竟,也就是两个view和一些简单的动画效果罢了. 单若是只讲这些,我自然也是不愿花这番功夫的.虽然自己很菜,可也不甘于太菜.所以偶尔看到些好东西,可以延伸学写下,我还是很情愿拿出来用用,顺带秀一秀逼格什么的. 不扯太多,先说说今天实现点赞效果用到的自以为不错的两个点: Checkable 用来扩展View实现选中状态切
-
iOS开发中简单实用的几个小技巧
前言 本文记录了在iOS开发过程中所遇到的小知识点,以及一些技巧,下面话不多说,来看看详细的介绍. 技巧1:UIButton图片与文字默认是左右排列,如何实现右左排列? 解决技巧: button.transform = CGAffineTransformMakeScale(-1.0, 1.0); button.titleLabel.transform = CGAffineTransformMakeScale(-1.0, 1.0); button.imageView.transform = CGA
-
浅谈Android Studio如何Debug对应so文件C/C++代码
在C/C++跨平台开发中,我们知道在Windows上可以通过VS,进行单步断点调试,这非常方便.但是我们如果编译好的动态库so,想要跟踪下其流程及各个阶段,如,怎么跟踪FFmpeg/VLC等库内部demux流程,或是Codec流程呢?今天通过一个小Demo进行Debug库文件C/C++代码. 一,下载 NDK 和构建工具 要编译和调试本地代码(native code),你需要下面的组件: 1.The Android Native Development Kit (NDK) : 让你能在 Andr
-
分享Visual Studio原生开发的10个调试技巧(2)
之前关于Visual Studio调试技巧的文章引起了大家很大的兴趣,以至于我决定分享更多调试的知识.以下的列表中你可以看到写原生开发的调试技巧(接着以前的文章来编号).这些技巧可以应用在VS2005或者更新版本中(当然有一些可以适用于旧版本).如果你继续,你可以知道每个技巧的详细信息. 技巧11:数据断点 当数据所在内存位置变化时,调试器将会中断.然而,这是唯一可能在一个时间创建4这样的硬件的数据断点.数据断点只能在编译的过程中添加,可以通过菜单(编译>新断点>新数据断点)或者通过断点窗口来
-
实用Javascript调试技巧分享(小结)
见过太多同学调试Javascript只会用简单的console.log甚至alert,看着真为他们捉鸡..因为大多数同学追求优雅而高效地写代码,却忽略了如何优雅而高效地调试代码,不得不说是有点"偏科"了.下面我就分享一些实用且聪明的调试技巧,希望能让大家调试自己代码的时候更加从容自信. 1. 不要使用alert 首先,alert只能打印出字符串,如果打印的对象不是String,则会调用toString()方法将该对象转成字符串(比如转成[object Object]这种),所以除非你打
-
android项目从Eclipse迁移到Android studio中常见问题解决方法
(1)将Eclipse项目导入到Android studio 中出现9-patch image问题解决方法: 在build.gradle里添加以下两句: aaptOptions.cruncherEnabled = false aaptOptions.useNewCruncher = false 用来关闭Android Studio的PNG合法性检查的,直接不让它检查. (2)Android Studio 错误: 非法字符: '\ufeff' 解决方案|错误: 需要class, interface
随机推荐
- C语言 while语句的用法详解
- CI框架中site_url()和base_url()的区别
- php桌面中心(一) 创建数据库
- java 中接口和抽象类的区别与对比
- 使用Android Studio 开发自己的SDK教程
- JavaScript实现检查页面上的广告是否被AdBlock屏蔽了的方法
- Jquery焦点与失去焦点示例应用
- Node.js静态文件服务器改进版
- SqlServer应用之sys.dm_os_waiting_tasks 引发的疑问(下)
- jQuery获取当前对象标签名称的方法
- 利用腾讯的ip地址库做ip物理地址定位
- javascript内存分配原理实例分析
- ActiveMQ基于zookeeper的主从(levelDB Master/Slave)搭建
- Java中的锁分类的详细介绍
- 用C# 控制Windows系统音量的实现方法
- C#的循环语句集锦及案例详解
- 宽带路由器常见故障巧排除
- vue.js引入外部CSS样式和外部JS文件的方法
- Java中Future、FutureTask原理以及与线程池的搭配使用
- 解决bootstrap中下拉菜单点击后不关闭的问题