Android Studio Debug 的 9 个小技巧

Android Studio 教你在debug调试模式下使用正式签名 这个问题是我在配置QQ第三方登陆时遇到的,QQ第三方登陆如果上传正式发布包到腾讯应用宝,也就是正式版的签名,测试三方登陆时也只能用正式签名测试,对于开发者来说,实在太痛苦了,因为开发者做测试都是运行起来都是在debug模式下,签名也是debug模式下的签名。腾讯开放平台有一个应用调试者QQ号测试,不知道是不是填写了开发者的QQ号之后就可以用正式版的签名做第三方登陆测试了,每次我点击添加,结果就这样 阅读详情

左边选择当前断点之后,在右边点击【Disable until breakpoint hit】,选择我们之前有条件判断的断点,那么这个新的断点会在它所跟随的断点生效之后才会生效。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0RP8JX0c-1651117135407)(https://user-gold-cdn.xit 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》无偿开源 徽信搜索公众号【编程进阶路】 u.io/2019/11/4/16e34143d35416f1?imageView2/0/w/1280/h/960/ignore-error/1)]

3. 挂起线程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bwC7mMKB-1651117135409)(https://user-gold-cdn.xitu.io/2019/11/4/16e34157736705f8?imageView2/0/w/1280/h/960/ignore-error/1)]

当我们右键任意一个断点的时候,会有一个 Suspend 选项【All、Thread】,All 也就意味着当我们在一个多线程的应用中 debug 问题的时候,一旦这个断点生效,所有的线程都会被挂起,Thread 表示只挂起当前线程。所以当我们在某个后台线程中 debug 问题的时候就可以选择 Thread,这样就不会在 debug 的时候阻塞主线程的正常功能。

还有一个打开关闭断点的快捷键也分享一下:Windows 用户 Alt + Click ,Mac Option + Click 。

4. 动态打印

详细很多人包括我之前在 debug 的时候,都会在需要 debug 的地方增加 print 输出一下信息供自己排查错误,这里提供一种快捷方便的方法,可以既不污染我们的代码,又可以随时输出任意信息。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s6vuE1jX-1651117135409)(https://user-gold-cdn.xitu.io/2019/11/4/16e34160f795395a?imageView2/0/w/1280/h/960/ignore-error/1)]

如上图所示,在需要打印的地方增加断点,然后取消所有线程的挂起,选择【Evaluate and log】,属于我们需要打印的语句,当代码执行到断点的时候,不会暂停,而会根据我们设置的打印信息输出 log,是不是很方便?

5. 断点分组

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lyyNZOuQ-1651117135410)(https://user-gold-cdn.xitu.io/2019/11/4/16e3416a300a8c71?imageView2/0/w/1280/h/960/ignore-error/1)]

通常遇到一个问题的时候,我们需要增加很多断点去追踪问题的原因,当问题解决之后,往往会忘记取消这些断点,导致在某次调试的时候,设备会被之前的断点所暂停,会让我们很无语。这里我们可以 debug 的时候在某个断点上:右键、更多,然后选择这个问题所有相关的断点,将它们分到同一个 Group 里面,那么这一个组的断点就可以统一开关、统一删除。

6. 断点上一步

说到这个真的很痛心,常常因为自己在 debug 的时候,由于下一步点击的太快了而错过了问题关键行,只能重新运行一次代码,重新 debug 然后自己一次次点击下一步。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c4zVzIxY-1651117135410)(https://user-gold-cdn.xitu.io/2019/11/4/16e3418787a95e8d?imageView2/0/w/1280/h/960/ignore-error/1)]

在运行 Android 10 的设备上,debug 界面中提供了一个叫【Drop frame】的按钮,可以供我们跳出当前方法栈,返回上一步,这样就会避免我们因为错过断点而不得不重新运行代码。

7. 观察对象

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wJSMNRwh-1651117135411)(https://user-gold-cdn.xitu.io/2019/11/4/16e341970565ae3a?imageView2/0/w/1280/h/960/ignore-error/1)]

当我们 debug 的时候,可以从 debug 窗口中观察当前作用域中的对象以及对象的属性,有时候我们会观察在不同页面是否是同一个对象,之前我的做法很粗暴…就是找张纸,把这个对象的 ID 记下来,然后在另一个页面 debug 看 ID 是否一致😂

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jafa5A9e-1651117135412)(https://user-gold-cdn.xitu.io/2019/11/4/16e3419c98a17f31?imageView2/0/w/1280/h/960/ignore-error/1)]

这里我们可以在对象上右键、选择【Mark Object】之后会让你自定义一个 Label,然后在整个 debug 期间,相同的对象会以你设置的 Label 为 name 出现,帮助我们方便的分析是否是统一对象。

顺便提一下,在任意一段代码上,点击行号,可以从当前断点快速执行到目标行并暂停,这个我真是第一次知道,感觉之前 Android Studio 都白用了😭

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m6GnCY3Q-1651117135412)(https://user-gold-cdn.xitu.io/2019/11/4/16e341a3ee396cd4?imageView2/0/w/1280/h/960/ignore-error/1)]

而且在 debug 的时候我们可以选择 debug 窗口中的【Evaluate expression】按钮来动态观察对象,点击之后会弹出一个计算框,我们可以输入任意当前作用域中的对象以及属性观察。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yKlUavln-1651117135413)(https://user-gold-cdn.xitu.io/2019/11/4/16e341b086604305?imageView2/0/w/1280/h/960/ignore-error/1)]

不得不说这个真的很方便,以前遇到这种情况我只有一种方法就是:print 😂,当然这里不仅仅是观察对象,我们可以写任意代码观察我们想要的值,就像下图这样。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U2ClNR62-1651117135413)(https://user-gold-cdn.xitu.io/2019/11/4/16e341b3fc92465b?imageView2/0/w/1280/h/960/ignore-error/1)]

8. 增量更新

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xpcmen1r-1651117135414)(https://user-gold-cdn.xitu.io/2019/11/4/16e341b874ac9beb?imageView2/0/w/1280/h/960/ignore-error/1)]

我试了一下,这两个按钮是真的很好用啊,比重新全量运行应用真是快了不少,非常方便。

9. 错误栈分析

通常我们 App 中会继承一下线上 bug 反馈的 SDK 比如 bugly,在 bugly 我们会得到崩溃的异常栈信息,类似下图这样。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R8379Iec-1651117135414)(https://user-gold-cdn.xitu.io/2019/11/4/16e341c7ed481af8?imageView2/0/w/1280/h/960/ignore-error/1)]
我们可以全选复制,打开我们的 Android Studio,选择 Analyze → Analyze Stack Trace or Thread Dump,然后把异常栈信息粘贴进去,点击确定。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VfZtWvJG-1651117135414)(https://user-gold-cdn.xitu.io/2019/11/4/16e341cd3ca4d1a9?imageView2/0/w/1280/h/960/ignore-error/1)]
Android Studio 会在控制台显示这段异常栈信息,并且与现有代码 Link 在一起,我们可以点击跳转到问题所在行。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mtFKr4wN-1651117135415)(https://user-gold-cdn.xitu.io/2019/11/4/16e341d9f9622c62?imageView2/0/w/1280/h/960/ignore-error/1)]
好了这就是今天要分享的全部内容,关于更多详细的内容,大家可以点击【阅读原文】在油管上查看,真希望有大佬可以出一个【Android Studio 使用全攻略】,感觉自己对 AS 真的只是会用,但还有很多东西需要去学习和探索。😂
原文】在油管上查看,真希望有大佬可以出一个【Android Studio 使用全攻略】,感觉自己对 AS 真的只是会用,但还有很多东西需要去学习和探索。😂

Android开发 ——Android Studio工具Debug调试技巧 在某些情况下,我们需要从当前断点移动到下一个断点,两个断点之间的代码自动被执行,这样我们就不需要一步一步调试到下一个断点了,省时又省力。开启这个功能后,idea的Debugger会自动评估某些变量,大概就是当你执行在某个断点时,Debugger会检测当前调试点之前或者之后的变量的状态,然后在变量区选择性输出。该功能非常有用,比如当你在调试过程中,突然不想让断点干扰你所关心的流程时,可以临时禁用断点。Android studio提供了断点调试功能,包含了求值调试,条件断点,日志断点,方法断点,异常断点等等; 阅读详情

相关推荐

Eclipse_Debug_调试技巧入门_Eclipse_Debug_调试技巧入门_

Eclipse 调试器; Debug 视图;调试 Java 语言程序;远程调试;Eclipse快捷键调试

在Intellij IDEA中使用Debug

  Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化。通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方框架的源码。   所以学习下如何在Intellij IDEA中使用好Debug,主要包括如下内容:     一、Debug开篇     二、基本用法&快捷键     三、变量查看 ...

weixin_30784501的博客 1万+

zabbix5+dify+ollama+deepseek+企业微信 本地部署实现故障智能分析

zabbix5告警信息deepseek自动分析

slc14211421的专栏 3070

Android Studio 你需要掌握的Debug技巧(上)

Android Studio 你需要掌握的Debug技巧(上)对所有程序猿来说,写代码最让人头疼的不是某个难以实现的功能,而是辛辛苦苦码完代码却发现自己的程序里面存在着这样或那样的Bug。尤其是碰到那种让你绞尽脑汁,修改了无数次都解决不了的Bug。我相信,很多朋友都会有这样的经历。对于开发者来说,几个小的Bug也许看上去问题不大,可如果不及时解决,一旦积累起来,轻则会影响用户体验,重则可能会使整个系

Yaoobs的博客 1万+

NVMe-MI --- Message Servicing Model(消息服务模型)

本文主要介绍NVMe-MI消息服务模型,两个主要类别是请求消息和响应消息。并介绍带外机制消息服务状态机。

智小星的博客 2009

倍福Beckhoff运动控制功能块实战解析:从MC_ReadActualPosition到MC_GearInVelo

本文深入解析倍福(Beckhoff)TwinCAT运动控制功能块,从基础的MC_ReadActualPosition、MC_Power等轴状态读取与使能操作,到MC_MoveAbsolute、MC_MoveRelative等单轴定位指令,并重点剖析了用于动态速度同步的核心功能块MC_GearInVelo在飞锯等场景的应用。文章结合实战经验,详细介绍了齿轮耦合、电子凸轮(MC_CamIn)等高级同步功能的参数配置、调试技巧及常见问题,旨在帮助工程师快速掌握倍福运动控制工具箱,实现复杂的同步工艺。

transformer2023的博客 980

第2课 Android开发工具介绍

第二课、Android开发工具介绍 工欲善其事,必先利其器。 一、AndroidStudio初体验 二、AndroidStudio配置 三、AndroidStudio高级使用技巧

jinxinliu1的专栏 784

具身智能端到端大模型VLA (Vision Language Action)

在语言为条件的机器人任务中,策略必须具备理解语言指令、视觉感知环境并生成适当动作的能力,这就需要VLA的。例如,在自动驾驶领域,传统的做法是将感知、预测、规划等步骤分开处理,而VLA则试图用一个统一的框架来替代这种分立的方法。另外,VLA的模型对于算力的需求很大,单片AI算力1000Tops的Thor大概率会延期发布,加上英伟达芯片的量产时间与成本挑战,以及在国内的应用情况,对车企而言是个大问题。以谷歌DeepMind推出的RT-2为例,该模型可以在新的物体、背景和环境中表现出显著改善的性能。

具身智能机器人 1万+

[Android Studio 权威教程]断点调试和高级调试

有人说Android 的调试是最坑的,那我只能说是你不会用而已,我可以说Android Studio的调试是我见过最棒的。 好了开始写一个简单的调试程序,我们先来一个for循环 for (int i = 0; i < 10; i++) { //获取当前i的值 int selector = i; //打log查看当前i的值(此步多余,实际开发请忽略) Logger.e("fo

ZeroFlutter 4万+

【基于51】红外寻迹智能小车 - 代码篇

这是一个基于C51单片机的红外巡线智能小车,是一个适合嵌入式单片机、C语言初学者练习的小Demo,文章提供完整的项目思路、免费的源代码。

ZER00000001的博客 3万+

Windows 上安装 OpenCode 完全指南:从零到成功,人人能看懂!

跟着这篇教程,你应该已经成功在 Windows 上安装并运行了 OpenCode。步骤操作要点1安装 Chocolatey必须以管理员身份运行 PowerShell2安装 OpenCode3验证安装关闭并重新打开终端,输入4进入项目目录必须是 Git 仓库(git init5配置模型输入/connect,输入 API Key6开始使用输入问题测试最后的小建议如果没有 API Key,可以从 DeepSeek 或 Kimi 开始,有免费额度初次使用建议先在简单项目上测试。

专注于编程、AI、人工智能等多个领域内容研究和分析 3883

Android Studio Debug 的 9 个小技巧,h5移动端开发面试题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v9Gx7WYB-1637128301219)(https://user-gold-cdn.xitu.io/2019/11/4/16e3411493b0f1f4?imageView2/0/w/1280/h/960/ignore-error/1)] 这样我们相同关键字的 log 就会被折叠,当然也可以展开查看详细 log。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mWLXn9yi-1637128

m0_64319064的博客 436

标准论文参考文献添加方法——Zotero入门使用教程

第一篇论文投出去了,写一下最后一步的参考文献修饰润色吧! 论文的参考文献,即References,是论文的最后一步,相信不管是写毕设论文还是期刊论文都遇到过需要修改参考文献的情况,非常之麻烦。而且参考文献中经常会与生僻奇怪气体出现,一个一个修改非常浪费时间,这里介绍一下一个非常好用的软件Zetero。 第一步:软件的下载安装及绑定Word 尽量使用客户端吧,

MISAYAONE的博客 20万+

学会这9个Android-Studio-Debug-的小技巧,让你的Debug效率事半功倍!

写到这里也结束了,在文章最后放上一个小小的福利,以下为小编自己在学习过程中整理出的一个关于Flutter的学习思路及方向,从事互联网开发,最主要的是要学好技术,而学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯,更加需要准确的学习方向达到有效的学习效果。由于内容较多就只放上一个大概的大纲,需要更及详细的学习思维导图的点击我的GitHub免费获取。

m0_60388216的博客 476

cesium 淹没分析

cesium淹没分析

God's asylum的博客 480

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Android Studio Debug 的 9 个小技巧,35岁程序员的人生感悟

我们来看上面这段代码,通过字面意思我们可以得知:这是一个点击事件执行的方法,点击发生后通过 NavController 从当前 HomeFragment 跳转到 EmailFragment。然后我们在第一行打了一个断点,我们已经得知当 email 的 subject 包含 【Bonjour】关键字的时候,这段代码会发生崩溃,反之不包含则不会发生崩溃,所以我们不需要每次断点都生效。这里我们可以右键断点,在 Condition 里输入我们的条件判断语句,当条件允许的时候,断点才生效。

2401_84149996的博客 1030

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

2024年最全Android Studio Debug 的 9 个小技巧,设计模式的面试题

题外话,我在阿里工作多年,深知技术改革和创新的方向,Android开发以其美观、快速、高效、开放等优势迅速俘获人心,但很多Android兴趣爱好者所需的进阶学习资料确实不太系统,完整。今天我把我搜集和整理的这份学习资料分享给有需要的人我们可以在这个断点上面,右键、点击更多。左边选择当前断点之后,在右边点击【Disable until breakpoint hit】,选择我们之前有条件判断的断点,那么这个新的断点会在它所跟随的断点生效之后才会生效。

2401_84132589的博客 902

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Android Studio 导入系统源码并对源码进行debug调试

Android9系统源码下载 Android9源码编译 之前阅读Android源码都是使用直接从百度云盘下载源码,并导入Source Insight进行阅读,这个工具也很强大,类的查找搜索都很方便,源码也不需要进行编译,但是,是不能进行类的关联以及进行调试。 如果你已经将源码进行编译,得到了Android Studio项目配置文件,就可以直接导入Android Studio了。优势是,各种快捷键随心使用,而且可以进行系统源码调试。 1.编译好的Android源码导入Android Studio 在源码目录,

风的轨迹 7757

uniapp离线打包安卓apk详细教程,从HbuilderX新建项目到Android Studio详细配置(一)

摘要:本文介绍了使用HbuilderX和Android Studio进行基础离线打包的完整流程。首先需在HbuilderX新建项目并申请证书及离线key,然后生成项目本地包。接着在Android Studio中配置:导入离线SDK、复制本地包、配置离线key和appid、设置build.gradle文件、配置证书信息,最后完成打包。此外还详细说明了如何制作自定义调试基座,包括引入debug-server-release.aar、开启debug配置、添加调试依赖等步骤。整个流程需确保SDK版本与Hbuilde

想喝冰阔落的博客 3169

Android Studio 连接手机debug代码

目录check out代码build连接手机android studio设置手机打开"开发者模式"手机通过USB连接电脑开始调试查看app性能问题 一直做java后端开发,项目需要1个apk来做视频直播推流客户端demo,于是开启android调试之路。 check out代码 第一步从github上找到了一个开源代码yesea build 连接手机 android studio设置 打开setting 安装Google USB Driver 选中SDK Tools,安装Google USB

黄河边上的牧马人 739

Android Studio Debug调试全篇

Android Studio Debug调试全篇

冯旭的博客 9707

Android Studio Debug 断点调试,各种骚操作都在这里了

Android Studio中的断点调试功能很好用,可谓是强大,用的好,不仅可以一定程度上提高开发进度,还能提高逼格。首先从最开始的来吧。 启动Debug 启动Debug有两种方法,一是Debug启动APP;二是Attach Debugger。 方法一和Run App操作类似,点击之后会项目会运行在我们的设备上,然后就可以开始后面的调试了; 方法二的前提是我们的项目必须已经运行过,点击之后就可...

优了个秀 1295
上一篇: Android动态权限总结
下一篇: Android Studio统一依赖管理Composing builds
Java364102
博客等级 码龄5年 12粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值