为了学习Android的一些内部工作原理或者解决工作中的难题,我们经常需要研究Android SDK中的源码。
研究源码有两种方式,一种是静态的阅读,一种是动态的调试。对于复杂的代码,动态调试一般会更高效实用,因为可以使用调试工具强大的功能,比如堆栈跟踪,变量查看等。在调试跟踪SDK源码时,相信大家都曾经遇到一个让人很无奈的事情,就是IDE显示的代码行号跟实现执行的代码对不上。那么是什么原因造成了这种情况呢?
简单的说就是设备的Android系统版本与编译使用的SDK版本不一致。举个例子,我们写了一个CustomView,继承SDK中的View,使用Android4.0的SDK(api 14)来编译,然后将生成的apk安装到Android2.3的手机上运行。那么问题