上面有说, 可以通过 Alt + 7 快捷键 调出来。 个人觉得, 这个对于查看代码结构,还是很方便的。直接可以看到代码的大体结构。 我们以 android-23 的 View 类,为例
Paste_Image.png
选中后, 我们点击左侧,具体的类 或者 接口。 我们发现右侧会跟着移动
Paste_Image.png
取消选择以后,可以发现不会跟着移动
Paste_Image.png
【箭头向下 指向横线】,表示随着左侧点击,右侧自己查找类和方法
选中后, 我们点击右侧, 具体代码位置。 发现也会到对应的位置。
Paste_Image.png
同理, 取消后,就不存在了
【横线指出 向下箭头】,表示随着右侧点击,左侧查找所在类和方法
或者总体自己理解 横线,表示代码。 一个是选择后,去找代码。 一个是从代码,去找位置
Paste_Image.png
我们【点击Expand All,展开全部】
Paste_Image.png
可以发现,左侧全部展开了
【点击 Collapse All, 合拢全部】
Paste_Image.png
可以发现,左侧全部合拢了
这2个,表示左侧 全部合拢, 全部展开
显示匿名类
Paste_Image.png
具体匿名类概念,这里就不描述了,属于基础,可以参考 http://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html
Paste_Image.png
选择之前,是这样的
Paste_Image.png
选择之后,可以发现,浅灰色的方法,都是继承自父类的(双击,可以进入父类查看)
Paste_Image.png
Paste_Image.png
点击前,我们可以看见左边有一些类
Paste_Image.png
点击后,我们可以发现, 一些private等的类,也可以看见了
Paste_Image.png
这里,我们可以看见 DeclaredOnClickListener 私有静态类 (都说反射效率低, 但是可以发现 很多底层的类, 都大量运用反射)
Paste_Image.png
取消点击后, 我们在左边就看不见对应的类了
这里f , 就是 field的意思, 也就是 属性, 当然,我觉得理解成 字段 也挺好。
Paste_Image.png
点击前,我们只能看见 类,接口和方法 点击后,我们可以看见对应的属性
Paste_Image.png
这里P,是 Property。 自己 理解 Property属性, 和 Field的区别。 (Property是对外的, 通常是为了让外面知道,通常有setter或getter) (Field 不存在对不对外, 类中需要存储, 都属于Field) (自己参考:Properties and fields are the same, except a property is a settable/gettable field)
Paste_Image.png
我们拿android-23的View 的 setOnClickListener() 方法举例。 我们调整成, Autoscroll from Source 也就是,【横线指出 向下箭头】, 通过源码去移动左侧的标记
Paste_Image.png
当我们点击【P】的时候
Paste_Image.png
我们可以发现,左侧 把对应的方法 放置到了 属性 onClickLister: OnClickListener 下面 这样, 我们可以按 Property属性去了解作者的代码想法
Paste_Image.png
这个符合,自己看不太清楚, 感觉 像一个【I】,也就是 Interface的意思
Paste_Image.png
我们可以发现, View 实现 3个接口, 2个类的内部接口Callback, 一个公开接口AccessibilityEventSource 拿 KeyEvent的内部接口为例:
Paste_Image.png
onKeyDown 方法 是经常用的
我们在View中, 找到实现
Paste_Image.png
这个时候,左侧方法是单独排列的。 当我们点击 【I】的时候,
Paste_Image.png
我们可以发现,是按接口类型, 排列 这样, 当一个类实现多个接口的时候 可以清楚看出哪些方法是实现哪个接口
按字母顺序排列, 这个比较好理解
Paste_Image.png
点击后,就按字母顺序排列
Paste_Image.png
要按可见度排序, 要先打开 show non-public【显示非公开】
Paste_Image.png
我们以装载 OnClickLister的 静态内部类 ListenerInfo 举例(没有修饰符,是不可见的) 这个时候,我们没点击 可见度排序 前 我们发现 ListenerInfo 是按 代码排序的, 比较靠前
Paste_Image.png
点击后:
Paste_Image.png
就按可见度排序,排到后面了
访问权限修饰符修饰成员变量和方法
我们看见在【m】后面(当然,类和接口后都有)
Paste_Image.png
有这4中,也就是分别代表上面的四种修饰符
Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png
Field:字段属性
Paste_Image.png
Method:方法
Paste_Image.png
Class:类
Paste_Image.png
Interface:接口
Paste_Image.png
这里比较多, 就拿 方法m 来举例子: final:
Paste_Image.png
static:
Paste_Image.png
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有