1. 程式人生 > >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構建工程