1. 程式人生 > >AndroidStudio 外掛 之 Findbugs 安裝與簡單使用教程

AndroidStudio 外掛 之 Findbugs 安裝與簡單使用教程

前言

        對於程式碼質量的檢查,一直是一個比較棘手的問題。雖然我們部門有關於java程式碼的各種規範,領導也多次強調對程式碼的評審。但是在實際執行過程中,由於開發人員的水平參差不齊,在開發專案時還有各種其他因素,比如時間緊任務重,自己的程式碼不規範沒有意識到,就疏於對程式碼質量的檢查,然後草率的提交。還有就是大家對程式碼檢測的不重視,有種意識就是即使程式碼不規範,我們的程式也可以正常執行,為什麼要多次一舉呢。由於我們的工程和程式碼時間比較久遠,想改卻不知道如何下手,將程式碼規範轉換成實際的程式設計規範時,執行起來卻很困難,即使我們有心改這也將是一個長期而痛苦的過程,需要很大人力和時間。        現在,向大家推薦一個很優秀的程式碼質量檢測工具—FindBugs
,一個用靜態分析的方式來尋找Java程式碼中Bug的工具,,它檢查類或者jar檔案,將位元組碼和一組缺陷模式進行對比以發現可能的問題。有了靜態分析工具,就可以在不實際執行程式的情況下對軟體進行分析。不是通過分析類檔案的形式或結構來確定程式的意圖,而是通常使用Visitor模式來鑑別程式碼是否符合一些固定的規範。具體介紹大家可以百度一下進行普及。

Findbugs安裝教程

         AndroidStudio的Findbugs外掛的安裝有線上安裝和離線安裝,這裡介紹線上安裝。      

         Findbugs的線上安裝非常簡單,開啟AndroidStudio 點選File->Settings->Plugins , 具體如下圖所示:

   1 、 輸入搜尋Findbugs 。

      2、  點選Search in respostories.

      3、  下載安裝

       4、  然後重啟Android Studio,會發現下面工具欄多出一個憤怒的小鳥的圖示,這就是Findbugs。如下圖所示,左下角彈出框提示是提示你加入你的對應的缺陷匹配規則,這個可以不用去管他。

Findbugs的簡單使用教程

       Findbugs使用之前首先介紹一下左邊工具欄裡面的這些按鈕都是幹嘛的。

       首先我們可以看到Findbugs的按鈕主要分4塊,如下所示:

這4塊是按照功能來區分的主要是:

1、程式碼檢測功能區

2、bug分組顯示功能區

3、使用者體驗功能區

4、匯入/出錯誤集合

程式碼檢測功能區

    該區的按鈕主要用來檢測程式碼中的bug,我們檢測或停止檢測bug就是點選這個區域的按鈕。這些按鈕我們點選開啟一個檔案右擊彈出選單最下面有個Findbugs,游標移動到下面就會出現這個區域的圖示。如下圖所示:

根據上圖的圖示右部功能描述我們很容易明白這些按鈕是幹嘛的,下面我們一個個來說一下。

1、分析當前檔案

2、分析遊標下的類(就是游標所在的類)

3、分析包內所有檔案

4、分析當前模組的所有檔案

5、分析專案中的所有檔案 

這個按鈕就是分析檢測當前project中所有檔案,找出bugs。

6、分析範圍內的所有檔案

這個按鈕就是分析檢測當前檔案一定範圍中所有檔案,我試了一下點選後分析的還是當前專案中的所有檔案,可能是因為專案結構的問題吧。

7、分析所有模組內的所有檔案

這個按鈕就是檢測所有模組中的程式碼缺陷,主要和第一個按鈕功能還是差不多。

8、分析改變的所有檔案  

這個按鈕一般顯示都是暗色的點選不了,當有svn等版本控制時改變後才能點選檢測。

bug分組功能區

1、根據bug的分類來分組顯示bug,選中後bug分組如下所示:

2、根據類來分組顯示bug,就是一個類一個類顯示bug。

3、根據包來分組顯示bug

4、根據bug的等級分組顯示bug,由下至上bug的等級越來越低,也就是最下面的是最致命的。

使用者體驗幫助區

該區主要是用來幫助體驗的

1、這個按鈕的功能是自動定位至bug所在的位置,

2、在下方顯示Finbugs欄目中預覽bug檔案,如下所示選中與沒選中效果:

3、

4、這兩個按鈕一看就明白就是合併和開啟bug分組列表,如下所示:

5、這個按鈕就是在設定裡面設定Findbugs

bug修改

    檢測到bug是什麼bug呢?如何修改呢,我們選中一個bug會在最右邊顯示並描述,如下圖所示,右下角綠色字型可以點選連結至Findbugs官網。

      問題描述都已經很清楚了,具體如何修改大家實在不會可以百度,或者請教大佬。

      推薦一篇不錯的Findbugs錯誤規則整理的部落格:

轉自:https://blog.csdn.net/u013132758/article/details/70187846