快速读懂别人代码的技巧

如何快速读懂别人的代码,对于刚入职或刚接手别人项目的开发者来说是件挺重要的事情,这直接影响着以后的开发进度。本文是我根据自己的经验给出几点实用性很强的建议。

1.通过AndroidStudio 的DDMS模式下的Android Device Monitor 的Dump View Hierarchy for UI Automator功能监听app任意一个布局的所有可视属性及交互属性(基本涵盖了此xml布局的所有设置的属性),截图如下:

右侧截图如下:

右侧是view具体的属性值,比如,我们点击待执行的TextView,其右侧截图如下:

我们可以通过红框里的id及包名,类名等信息(基本id就够了)快速定位到此View的具体位置,当然里面还涵盖了此View的父级信息,各种点击,选中等状态信息。

2.通过 StackTraceElement 打印app任意界面的类名,配合AndroidStudio开发工具Logcat(日志)打印台快速定位到此类。这个方法非常实用,不光对接手新项目的新人实用,对于项目复杂度挺高的人来说也可以通过此方法快速定位到日志打印的具体位置,从而好定位问题所在。

实现的核心是核心类库StackTrace

核心代码:

StackTraceElement targetStackTraceElement = getTargetStackTraceElement();
            Log.e(mTag, "包名参考:" + targetStackTraceElement.getClassName() +
                    targetStackTraceElement.getMethodName());
            Log.e(mTag, "(" + targetStackTraceElement.getFileName() + ":" +
                    targetStackTraceElement.getLineNumber() + ")");
            Log.e(mTag, content);

通过打印代码运行时的堆栈信息,配合AndroidStudio的Logcat日志打印台,截图如下:

通过单击上述蓝色字体就可以跳入到代码的具体位置,使用起来非常方便。

3.通过AndroidStudio的Debug技巧,快速定位bug元凶。

AndroidStudio提供了两种debug模式:直接Debug app和Attach Debugger to Android process。相比前者而言,后者更加灵活,使用起来更加方便,

具体使用举例如下。

3.1.设置断点:

3.2.启动app跳入可执行断点代码的界面,这时app进入debugger模式,可通过以下快捷键灵活处理程序的走向(以下是最简单的基础用法):

Step Over:F6-

程序向下执行一行(如果当前行有方法调用,这个方法将被执行完毕返回,然后到下一行)

Step Into:F5-

程序向下执行一行。如果该行有自定义方法,则运行进入自定义方法(不会进入官方类库的方法)

Force Step Into:Alt+Shift+F7-

该按钮在调试的时候能进入任何方法

Step Out:F7-

跳出该方法,返回到该方法被调用处的下一行语句。

通过上面的快捷键可以通过处理程序的走向进而定位bug之所在。

猜你喜欢

转载自blog.csdn.net/qq_20089667/article/details/86672430