Debug调试

作者: 奔跑的佩恩 | 来源:发表于2020-04-02 17:17 被阅读0次

    前言

    Android开发过程中,调试是一个十分重要的技能,有效的调试,可以尽快查找,定位问题,帮助快速解决问题,加快开发速度。调试的方式由很多种,其中用得比较广泛的有Debug调试log调试。其中Debug调试Androidstudio工具自带的一种调试方式,使用十分快捷,排查问题仔细,能有效的帮助找到问题。说来惭愧,开发这么多年,我一直是用Log打印调试,为啥不用Debug调试?因为不会用,然后逐渐远离它,最后的结果是:更不会。所以今天就来讲讲Debug调试的基本使用吧。

    正文

    第一步:准备一段用于调试的代码

    先让我们准备一段简单的代码吧,后续的讲解均依赖此段代码:

        private void test() {
            int number=5;
    
            for (int i = 0; i < 10; i++) {
                i=getNumber(i,number);
                LogUtil.i("=======i====="+i);
            }
        }
    
        private int getNumber(int i,int number){
            if(i<number){
                return i+1;
            }else{
                return i+7;
            }
        }
    

    这里,我们需要调试test()中的for循环,然后查看i值变化。

    第二步:打断点

    要调试for循环,所以在代码左侧打下断点,如下图:

    image.png

    第三步:点击debug按钮,开始调试

    点击工具栏上的爬虫,开始调试。如下:

    image.png

    第四步:介绍几个调试按钮

    启动调试以后,界面底部会展示调试的工具栏,如下:

    image.png
    可以看到,上面有好几个按钮,这是为了方便我们调试的,下面对几个按钮作用一 一介绍。
    4.1 单步执行
    image.png
    Step Over(F8): 单步执行。代码会一步步执行,若执行过程成遇到方法体,不会进入该方法,而是继续走当前代码的下一步。
    以上面代码为例。即在不断点击Step Over的时候,会不断执行for循环的代码,但不会进入到for循环方法体中的getNumber(i,number)方法中。
    4.2 进入方法中
    image.png
    Step Into(F7): 进入方法中。以上面的for循环为例,当你点击Step Over单步执行到代码行i=getNumber(i,number);的时候,这时如果你想看看getNumber(i,number)是如何执行的,你可以点击Step Into按钮,跳到该方法内部查看getNumber(i,number)的执行过程。
    4.3 展示所有与之关联的方法
    image.png
    Force Step Into(Alt+Shift+F7): 该按钮能展示你要调试的代码行与之有关的所有方法。以代码行i=getNumber(i,number);为例,当调试到该行时,你点击了Force Step Into按钮,frames窗口会罗列出所有与该代码有关联的方法,如下图:
    image.png
    这里,我们主要关注getNumber(...)test()以及onClick(...)方法,因为这几个方法都是设置到代码逻辑层的方法,而展示的剩下的方法,都是系统层的,无需关注。值得注意的是,点击每个方法,都可查看具体运行值。以我点击getNumber(...)为例,显示各变量值如下图:
    image.png
    此方法有助于帮助理解各方法间调用逻辑关系。
    4.4 跳出方法
    image.png
    Step Out(Shift+F8): 跳出方法。与Step Into方法相对应,当你调试代码行i=getNumber(i,number);并已经进入到方法getNumber(i,number)中时,这时,你想结束查看getNumber(i,number)方法内部运行情况,并想继续回到外层for循环中进行调试的时候,你可以使用此按钮跳出getNumber(i,number)方法。
    4.5 快速运行到下一断点
    image.png
    Run to Cursor(Alt+F9):快速运行到下一断点。当有多个断点调试的时候,可以迅速执行完当前断点,并记住任何已经调用过的方法,然后跳到下一断点处。

    第五步:结束调试

    当你想结束当前调试的时候,可以点击Androidstudio的工具栏上的结束调试按钮,该图标显示如下:

    image.png
    当然,在结束调试之后,别忘了将将之前调试时打下的断点清理掉。

    ok,今天的内容就介绍到这里了,谢谢大家。

    相关文章

      网友评论

        本文标题:Debug调试

        本文链接:https://www.haomeiwen.com/subject/kjnfphtx.html