首页 > 代码库 > 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构建工程