例如查看context.startActivity()方法的源码
context = getApplicationContext();
context.startActivity(intent);
1.在Studio中方法startActivity()上按F4,进入源码,看到是一个Context中的抽象方法
public abstract void startActivity(Intent intent);
2.按ctrl+o,查看类的结构,并没有startActivity的具体实现,都是抽象方法
3.ctrl+h查看类的继承关系,在类ContextWrapper和类MockContext中都没有找到startActivity的具体实现
4.当鼠标在类ContextWrapper上,选择ctrl+alt+shift+f7时,查找这个类被调用的地方,在弹框中的scope选择project and libraries
5.在控制台中看到如下的界面
6.打开类ContextImpl,在该类中可以看到startActivity()具体实现方法(ContextImpl是类ReceiverRestrictedContext中的一个内部类,而类ReceiverRestrictedContext的修饰符是默认的protected)
在不停地搜索之后找到了该方法的具体实现,但是该类ReceiverRestrictedContext在sdk中的包app下看不到
总结:SDK隐藏了一部分类或方法,Android Stdio虽然可以通过各种办法找到所需要查询的代码,但是很不方便。对于深入理解android源码,studio并不适合