天天看點

Android代碼審查以及工具findBugs-idea、Alibaba Java Coding Guidelines的簡介和使用

Android代碼審查主要分兩部分,代碼邏輯正确與否以及代碼規範。代碼邏輯正确與否更多的需要人為review,無法借助工具,是以這塊我們更多的是自己審查自己熟悉的代碼,app組内交流會增加代碼審查環節,示例錯誤的不規範的代碼以及修正方案,分享代碼為什麼會産生問題以及如果更好的解決問題。而代碼規範及常見錯誤的檢測則主要用到如下兩個工具。

Android 代碼規範以及常見錯誤主要用到如下兩個工具:

  1. findBugs-idea。
  2. Alibaba Java Coding Guidelines
  3. 這兩個工具是有差別的,findBugs-idea的作用側重于發現代碼中可能存在的bug,比如,它能發現某個switch的case語句中沒有加break,也能發現某個引用沒有做非空判斷而将導緻空指針異常,當然,它也能夠發現一些不好的編碼習慣。而Alibaba Java Coding Guidelines則是完全根據《阿裡巴巴java開發規約》開發的,能發現規約中的所有問題代碼。

下面具體介紹findBugs的安裝及簡單的介紹:

  1. android studio線上插件安裝方式:

打開File--Settings--Plugins 然後搜尋findbugs,如下圖,點選安裝即可,我這邊是已經安裝了,是以顯示的解除安裝,安裝成功後,重新開機android studio即可。

Android代碼審查以及工具findBugs-idea、Alibaba Java Coding Guidelines的簡介和使用

重新開機後,android studio下方出現如下小紅蟲标志表示安裝成功

Android代碼審查以及工具findBugs-idea、Alibaba Java Coding Guidelines的簡介和使用
  1. 離線插件安裝方式:

首先下載下傳插件:http://plugins.jetbrains.com/plugin/3847-findbugs-idea

連結:https://pan.baidu.com/s/16rkclcxoCOTG8ldP6kzuag 密碼:dse8

下載下傳完成後,打開File--Settings—Plugins,如下圖,點選Install plugin from disk…,選擇剛才下載下傳的離線包,即可。

Android代碼審查以及工具findBugs-idea、Alibaba Java Coding Guidelines的簡介和使用
  1. 使用方法

安裝完畢後,在java檔案上點選滑鼠右鍵,會彈出FindBugs的選項,子選項中有分析選中檔案,分析整個封包件,分析整個子產品等。

Android代碼審查以及工具findBugs-idea、Alibaba Java Coding Guidelines的簡介和使用

接下來我們點選第一個,分析選中檔案,稍微等待一下,下方會彈出代碼問題,如下圖,可以看到有Correctness,Performance, Dodgy code 三類錯誤,常見的錯誤類型根據缺陷的性質,大緻可以分為下列幾類,也就是說,這幾類錯誤,findbugs是可以探測出來的。

·Bad practice  不好的做法

·Correctness   可能有不正确

·Dodgy code     糟糕的代碼

·Experimental  實驗

·Internationalization  國際化

·Malicious code vulnerility 惡意的代碼漏洞

·Multithreaded correctness 多線程問題

·Performance  性能問題

Android代碼審查以及工具findBugs-idea、Alibaba Java Coding Guidelines的簡介和使用

接下來我們點進大類具體看看錯誤,如下圖,中間會展示出錯誤代碼的位置,右邊則展示具體的錯誤信心,借助翻譯大概可以明白,是logcat列印了一個數組,而這個列印隻會列印出數組的記憶體位址來,用處不大,建議通過tostring方法将數組轉化成一個可讀的字元串,則可看出具體内容。

Android代碼審查以及工具findBugs-idea、Alibaba Java Coding Guidelines的簡介和使用

下面介紹Alibaba Java Coding Guidelines

阿裡巴巴于10月14号在杭州雲栖大會上,正式釋出《阿裡巴巴Java開發規約》的掃描插件。該插件在掃描代碼後,将不符合規約的代碼按Blocker/Critical/Major/ Minor/Trivial四個等級顯示在下方,甚至在IDEA上,該插件還提供了實時檢測功能,編寫代碼的同時也能快速發現問題所在。對于曆史代碼,部分規則實作了批量一鍵修複的功能。

Blocker: 即系統無法執行、崩潰或嚴重資源不足、應用子產品無法啟動或異常退出、無法測試、造成系統不穩定。

  1. 嚴重花屏
  2. 記憶體洩漏
  3. 使用者資料丢失或破壞
  4. 系統崩潰/當機/當機
  5. 子產品無法啟動或異常退出
  6. 嚴重的數值計算錯誤
  7. 功能設計與需求嚴重不符
  8. 其它導緻無法測試的錯誤, 如伺服器500錯誤

Critical:即影響系統功能或操作,主要功能存在嚴重缺陷,但不會影響到系統穩定性。

功能未實作

    1. 功能錯誤
    2. 系統重新整理錯誤
    3. 資料通訊錯誤
    4. 輕微的數值計算錯誤
    5. 影響功能及界面的錯誤字或拼寫錯誤
    6. 安全性問題

 Major:即界面、性能缺陷、相容性。

  1. 操作界面錯誤(包括資料視窗内列名定義、含義是否一緻)
  2. 邊界條件下錯誤
  3. 提示資訊錯誤(包括未給出資訊、資訊提示錯誤等)
  4. 長時間操作無進度提示
  5. 系統未優化(性能問題)
  6. 光标跳轉設定不好,滑鼠(光标)定位錯誤
  7. 相容性問題

Minor/Trivial:即易用性及建議性問題。

  1. 界面格式等不規範
  2. 輔助說明描述不清楚
  3. 操作時未給使用者提示
  4. 可輸入區域和隻讀區域沒有明顯的區分标志
  5. 個别不影響産品了解的錯别字
  6. 文字排列不整齊等一些小問題
  1. android studio線上插件安裝方式:

打開File--Settings--Plugins 然後搜尋alibaba,如下圖,點選安裝即可,我這邊是已經安裝了,是以顯示的解除安裝,安裝成功後,重新開機android studio即可。

Android代碼審查以及工具findBugs-idea、Alibaba Java Coding Guidelines的簡介和使用
  1. 重新開機後,出現如下界面标志,說明安裝成功。
Android代碼審查以及工具findBugs-idea、Alibaba Java Coding Guidelines的簡介和使用

兩個按鈕分别表示,編碼規則掃描以及是否打開實時檢測功能。

  1. 如何使用

畢竟是中國人自己搞的東西,使用起來也是特别友善的,點選下圖兩個按鈕即可開始掃描

Android代碼審查以及工具findBugs-idea、Alibaba Java Coding Guidelines的簡介和使用

掃描完成後,在下方則會列出問題點,右下方則描述了具體的錯誤資訊:

Android代碼審查以及工具findBugs-idea、Alibaba Java Coding Guidelines的簡介和使用

當然,也可以打開實時掃描,在編碼的時候,就可以實時提示錯誤,如下圖:

Android代碼審查以及工具findBugs-idea、Alibaba Java Coding Guidelines的簡介和使用