首页 > 代码库 > Android Studio中查看类的继承关系
Android Studio中查看类的继承关系
查看类的继承关系的快捷键F4,在Android Studio常用快捷键这篇文章中,有写了。今天主要是讲一些关于这个快捷键出来的界面的一些配置,这块功能相对偏冷一些,可能很多人都会用不到。但是关于这些配置,android studio中很多都是类似的。
废话不多说,直接上图,如下图,我选中Activity,然后按F4,右边会出现一个和Activity有继承关系的图。
1、先简要分析下图中几个元素:
注:这边说第几个图标是从左到右的顺序来数的
第一个图标:显示所有的继承关系,包括父类,子类
第二个图标:显示父类
第三个图标:显示子类
第四个图标:按字母排序,这个用处不大,大家不用关心
Scope:这个是范围,就是你要查询哪个范围内的继承关系,后面下拉框就是选择你想要的范围。
后面几个图标我就不说了,关系不太大。
再说下,查询到的有继承关系的类图标有两种:
图标带小灰锁的:源码中的类
不带小灰锁:当前工程中的类
2、Scope简要分析:
解释前说明一点,这里所谓的不显示源码中的类,都是向下,不是向上,举个例子,我查看Activity的继承关系,如果你选择的范围为不显示源码的范围,仅仅指Activity的源码中子类的不显示,如果还是不理解的话,看下面production的说明。
Production:其实就是查询范围当前工程,这个时候就会隐藏继承Activity的非本工程的类,比如ListActivity.
All:这个好理解,就是包括本工程和源码
Test:这个从某种意义上来说是和This Class是一样的。
This Class:当前类
Configure:配置你自己想设置的查询范围。
默认的选项就是以上几个,至于local,share是我自己添加的。
比如我选择了Production,如下图,你只会看到MyActivity,我的代码中还有继承MyActivity的类,所以MyActivity前面有一个箭头,不过我没有展开。
重新选择MyActivity,然后再按F4,调出继承关系图,选择第二个图标,然后范围选当前的类,如图,你可以看到MyActivity的父类。
选择第三个图标,这个时候你就只能看到MyActivity的子类了。
估计可能有些人在用的时候会说我的怎么不灵,那是因为你的Scope选得有问题,一定要注意你选择的的Scope。
3、接下来主要讲点了Configure后如何进行配置
1)图标及区域功能分析
先通过configure添加Scope,我添加了local和share两个,其实你能添加的类型也就是两个,要么是local的要么是share的,名字你可以自己随便取哈。我这边便于说明所以直接以类型来命名。
share带一个白色小箭头,local没有,很好区分。
第一个图标:添加一个Scope
第二个图标:删除Scope
第三个图标:复制一个Scope,这里是除了Name的完全复制,name默认为Unnamed
第四个图标:将你选中的Scope另存为,这里说下有时候你可能会点了不灵,这个是Android Studio的bug,你把对话框关掉,重新点configure一般就能行了。
第五、六个图标:换位置图标,比如你可以把local移到share上面。
Pattern:范围匹配(这块内容一会和右下的四个按钮一起讲)
Pattern下面有一排可选择的内容,这块内容其实就是选择你的工程还有引用的包要以什么方式来显示,如果你觉得这块太混乱,不看也罢。你选择不同的方式,下面的Production Classes和Library Classes会根据你选择的显示方式进行显示。
Include,Exclude:这两个是相对的,一个添加,一个移除,都是针对Pattern,这里是针对包(package)级别内容的增加移除
Include Recursively,Exclude Recursively:这两个也是相对的,增加和移除Pattern的内容,这里是针对类级别的内容的增加和移除
Pattern的内容你还可以通过点击Pattern后面的白色按钮,来直接编辑。
2)配置参数
选中share,然后copy,你可以看到下图,出现了一个Unnamed的Scope,Unnamed中Pattern内容是和share一样的,我将share的Pattern设置到MyActivity类:
将local的Pattern设置到com.example.myapp.*这个包中
配置完成,点ok,回到继承关系页面,我们来看下效果,选择share,你会看到这个时候MyActivity的子类BActivity不会被查询出来了,因为不在查询范围内。
选择local,local的范围是整个package,这个时候你可以看到BActivity也被查询出来了
OK,今天就讲到这,下一篇会介绍如果用Gradle构建工程