写Android应用时,代码跑起来不按预期走,数据不对或者直接崩了,这时候光靠打印log效率太低。其实Android Studio自带的断点调试功能,能让你一步步看清程序执行到哪、变量值是多少,特别适合揪出那些藏得深的bug。
什么是断点?
简单说,断点就是你在代码某一行上打个标记,程序运行到这一行会自动暂停。这时候你可以查看当前所有变量的值,一步步往下执行,就像慢动作回放一样。
怎么设置一个断点?
操作特别简单。打开你的Java或Kotlin文件,在想暂停的那行代码最左边的行号上,用鼠标左键点一下。你会看到一个红点出现,这就表示断点设好了。比如你在处理用户登录逻辑:
if (password.length < 6) {
Toast.makeText(this, "密码太短", Toast.LENGTH_SHORT).show();
}
你怀疑这里的判断有问题,就在if这行加个断点。运行App,当用户输入短密码触发这段代码时,程序就会停住,不会直接弹Toast。
断点停住后能看什么?
程序一暂停,Android Studio底部会弹出“Debug”面板。这里能看到当前方法里的所有变量值。比如你有个username字符串,可以直接在面板里看到它具体是什么内容,是不是空,有没有多余空格。
你还可以右键断点选择“Conditional Breakpoint”,设置条件。比如只在username.equals("test")时才停下,避免每次运行都中断。
常用操作按钮
Debug面板顶部有几个小图标,从左到右分别是:
- Step Over:执行当前这行,然后停在下一行
- Step Into:如果当前行调用了方法,会跳进那个方法里面
- Step Out:跳出当前方法,回到调用它的地方
- Resume Program:继续运行,直到下一个断点
实际场景举例
比如你做了一个计算器,点击“等于”按钮结果总是0。你在计算逻辑前设个断点,一步步走,发现原来两个数没从EditText正确读出来,而是默认0。这样问题一下子就定位到了,不用反复改代码重新跑。
小技巧
有时候你不想要某个断点了,直接在红点上再点一下就能取消。也可以在“Breakpoints”窗口统一管理,把暂时不用的禁用掉,以后还能再打开。
断点不是万能的,但用熟了能省下大量瞎猜的时间。尤其是处理网络回调、异步任务这种顺序难捉摸的逻辑,断点一设,流程立马清晰。