Understand使用方法(轉載!

先貼原文連接,感謝原作者的貢獻
http://codemx.cn/2016/04/30/Understand01/

之前用Windows系統,一直用source insight查看代碼非常方便,但是年前換到mac下面,雖說很多東西都方便了,但是卻沒有了靜態代碼分析工具,很幸運,前段時間找到一款比source insight軟件還強大的代碼靜態分析工具,堪稱神器–Understand。這款軟件具有強大的代碼靜態分析功能,並且可以繪製各種流程圖。另外,Understand擁有Windows版本、mac版本和Linux版本,所以在這三種系統任何一個下面都可以使用。

因爲工作太忙,還沒有時間詳細的研究一下使用方法,只是簡單的瞭解了一下,由於該軟件可以幫助你快速的分析代碼結構流程,因此我提前分享給大家,希望和大家一起研究,共同學習,下面我針對這個軟件做個初步講解,後續會出詳細講解,由於軟件是全英文的所以有問題的地方望大家指出,我會及時更正。

由於安裝很簡單,在此就不說了,直接進入工程配置講解。

導入項目
導入項目有兩種方法,一種是從菜單欄點擊File–>New–>Project,另一種是點擊下面界面中間的New Project
在這裏插入圖片描述

點擊後,會進入到如下界面,你可以更改項目名稱爲你要導入的項目名稱,以便於以後查找,你可以直接導入你正在開發的項目,你的代碼更改後,這個項目也會自動更新,方便你快速開發,不需要每次導入。

在這裏插入圖片描述

更改名稱後點擊Next進入如下界面,這個界面是讓你選擇你要導入項目包含了哪幾種語言,注意,在C/C++後面有兩種模式,下面有註釋,其中Strict模式包含Object-C和Object—C++,還有Web的註釋,自己看看就好了,在此就不再解釋,

在這裏插入圖片描述

然後點擊Next進入下面界面:

在這裏插入圖片描述

在此界面點擊上面的“Add a Directory”,也就是添加你要導入項目的路徑,點擊後會彈出如下界面,此時有個奇葩就是彈出的界面會被上圖界面遮擋,此時你要移開該界面,然後會出現下面界面:

在這裏插入圖片描述

點擊後面的帶有三個點的按鈕選擇你要加入的項目文件夾,此處不用打開文件夾,只要點中文件夾點擊open按鈕:

在這裏插入圖片描述

此時只需要點擊OK即可,界面會跳轉到如下界面:

在這裏插入圖片描述

此時有兩個選項,一個是立即分析代碼,一個選擇配置,對於我們來說只需要默認即可,然後點擊OK按鈕,此時軟件開始分析代碼,分析完成後會出現如下界面:

在這裏插入圖片描述

左側會出你的項目結構,中間出現你項目的名稱,此時你可以操作左面項目來查看相關代碼,如下圖所示:

在這裏插入圖片描述

這麼多類和方法如何快速定位,那肯定是搜索,該軟件針對不同位置,不同屬性有不同的搜索方法,下面介紹搜索功能。

搜索功能
1.左側項目結構中搜索:在這個搜索中你可以快速搜索你要查看的類,快捷鍵,鼠標點擊左側上面項目結構窗口,然後按command + F鍵會出現如下圖所示的搜索框,在框中輸入你想要的類回車即可

在這裏插入圖片描述

2.類中方法搜索:將鼠標定位到右側代碼中,點擊command + F,會彈出搜索框,輸入方法回車即可:

在這裏插入圖片描述

3.在文件中搜索:也就是全局搜索,快捷鍵F5或者去上面菜單欄中的search欄中查找,輸入你想要的類或者方法,回車查找,下面會列出所有使用的地方:

在這裏插入圖片描述

4.實體類查找:軟件菜單欄search中最後一項–Find Entity,點擊輸入你要查找的實體類,回車查找:

在這裏插入圖片描述

快速搜索是軟件快速使用必備的技能,包括我們常用的idea一樣,快速定位類,方法,常量等,可以快速幫助我們解決問題。

上面我介紹改軟件時提到可以繪製流程圖等功能,下面就針對這個功能介紹一些一些圖形的繪製功能,幫助你快速分析代碼。

項目視圖
項目視圖包含很多的功能,能夠自動生成各種流程圖結構圖,幫助你快速理清代碼邏輯、結構等,以便快速理解項目流程,快速開發,視圖查看方式有兩種,一種是鼠標點擊你要查看的類或者方法等上面,然後右鍵彈出菜單,鼠標移動到Graphical Views,然後彈出二級菜單,如下圖所示:

在這裏插入圖片描述

另一種方式是點擊要查看的類或者方法,然後找到代碼上面菜單欄中的如下圖標:

在這裏插入圖片描述

然後點擊圖標右下角的下拉箭頭,彈出如下菜單,即可選擇查看相關視圖:

在這裏插入圖片描述

層級關係視圖分類:
1.Butterfly:如果兩個實體間存在關係,就顯示這兩個實體間的調用和被調用關係;如下圖爲Activity中的一個方法的關係圖:
在這裏插入圖片描述

2.Calls:展示從你選擇的這個方法開始的整個調用鏈條;

3.Called By:展示了這個實體被哪些代碼調用,這個結構圖是從底部向上看或者從右到左看;

在這裏插入圖片描述

4.Calls Relationship/Calledby Relationship:展示了兩個實體之間的調用和被調用關係,操作方法:首先右鍵你要選擇的第一個實體,然後點擊另一個你要選擇的實體,如果選擇錯誤,可以再次點擊其他正確即可,然後點擊ok;

在這裏插入圖片描述

在這裏插入圖片描述

5.Contains:展示一個實體中的層級圖,也可以是一個文件,一條連接線讀作”x includes y“;

在這裏插入圖片描述
6.Extended By:展示這個類被哪些類所繼承,

在這裏插入圖片描述

7.Extends:展示這個類繼承自那個類:

在這裏插入圖片描述

結構關係視圖分類:
1.Graph Architecture:展示一個框架節點的結構關係;

2.Declaration:展示一個實體的結構關係,例如:展示參數,則返回類型和被調用函數,對於類,則展示私有成員變量(誰繼承這個類,誰基於這個類)

3.Parent Declaration:展示這個實體在哪裏被聲明瞭的結構關係;

4.Declaration File:展示所選的文件中所有被定義的實體(例如函數,類型,變量,常量等);

5.Declaration Type:展示組成類型;

6.Class Declaration:展示定義類和父類的成員變量;

7.Data Members:展示類或者方法的組成,或者包含的類型;

8.Control Flow:展示一個實體的控制流程圖或者類似實體類型;

在這裏插入圖片描述

9.Cluster Control Flow:展示一個實體的流程圖或者類似實體類型,這個比上一個更具有交互性;

10.UML Class Diagram:展示這個項目中或者一個文件中定義的類以及與這個類關聯的類

在這裏插入圖片描述

11.UML Sequence Diagram:展示兩個實體之間的時序關係圖;

在這裏插入圖片描述

12.Package:展示給定包名中聲明的所有實體

13.Task:展示一個任務中的參數,調用,實體

14.Rename Declaration:展示實體中被重命名的所有實體

由於視圖比較多,所以就一一貼上代碼,主要還是需要自己去調試,查看各個功能視圖的展示結構以及作用,孰能生巧,多操作幾下就會了,所以不再做過多的解釋。最終希望這款軟件能夠幫助你快速開發,快速閱讀別人的或者自己的代碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章