源码的分析,一般分析两种数据,一种是类的关系,一种是某个功能实现的流程图。下面主要说的是流程图的分析。
android 中源码分析的方法总得来说有两种,第一种是借助 android studio 或者 eclipse 静态代码分析的方法,查看函数或者变量的使用情况,比如查看函数的调用树,变量的数据流。第二种是借助 debug 工具或者 log 日志在代码动态执行的过程中查看程序的执行情况。
- 在 android studio 中使用 alt + f7,可以快速查看某个符号被使用的位置,包括函数名、字段名、变量名等等,还可以快速查看到该函数的调用树,变量的数据流
- 如果代码执行逻辑我们自己可控制,在我们可以控制的地方添加 log 打印,可以很快检测该分支逻辑执行情况;如果代码不是我们自己可以控制的,就只能使用 debug 调试查看代码分支的执行起情况了
- 在 debug 的时候使用跳转到函数的内部,可以追踪到 framework 层源码的执行逻辑
- 在 debug 的时候可以看到函数的调用栈,能够一下子就明白在这种场景下,该函数在什么时候被谁调用了
这就是一动一静,动静结合。