咱們一般都會在APP上線以後,發現各類錯誤,尤爲是空指針異常,這些錯誤對於用戶體驗來講是很是很差的,但其實大部分的問題,咱們都可以提早發現.編程
在編寫代碼的過程當中,可能不會時時刻刻記得檢查空的引用,還有刪除沒有用過的變量,在咱們本身測試的過程當中可能難以發現問題,一旦app上線,用戶的使用環境改變,這些潛在的問題就可能會冒出來.
固然這這只是對於我這種常常寫出空指針異常的小白而言的,編程風格良好,編程嚴謹的大神請忽略.安全
今天我介紹一個小插件,幫助咱們提早找到這些潛在的問題,而後根據須要去修改.app
第一步下載插件,在AndroidStudio的File->Setting->Plugins->Browser Repositorise中搜索FindBugs-IDEA.而後install.
由於已經安裝過插件,因此install的按鈕已經消失了.
安裝成功後須要重啓AS纔可使用.
靜靜等待一會,在下方生成分析結果工具
找到的bug太多,數量就不展現啦.
我來簡單介紹一下這幾類bug,固然有些你是能夠忽略的.
1->Bad pratice編程的壞習慣
主要是命名問題,好比類名最好以大寫開頭,字符串不要使用等號不等號進行比較,可能會有異常最好用try-catch包裹的代碼,方法有返回值但被忽略等等,這些若是不想改能夠直接忽略.性能
2->Malicious code vulnerability 惡意代碼漏洞
聽起來很嚇人呀,主要是一些屬性直接使用public讓別的類來獲取,建議改成private併爲其提供get/set方法.
還有一些public的靜態字段,可能會被別的包獲取之類的.
這些也須要根據項目具體狀況來,我的意見,在有的不重要類,有時直接公開使用屬性,可能更爲便捷.若是你認爲這些不須要修改,徹底能夠忽略.測試
3->Dodgy code 糟糕的代碼
·好比一個double/float被強制轉換成int/long可能會致使精度損失,一些接近零的浮點數會被直接截斷,事實上咱們應該保留.
這裏順便提一點,這兩天看了《app研發錄》,在規範代碼,儘可能規避錯誤這方面我也有了一些收穫.
在類型轉換的時候,咱們應該爲類型轉換提供一個安全的轉換方法,由於咱們永遠不會知道,咱們的app在用戶手裏會發生什麼,因此咱們要儘量的去減小這種發生錯誤的可能.插件
·好比使用switch的時候沒有提供default。指針
·多餘的空檢查,就是不可能爲空的值,增長了不爲空判斷,這是沒有必要的。屬於代碼冗餘code
·不安全的類型轉換等等。
這項太多了,就不一一列舉了。orm
4->performance 性能
主要是一些無用的代碼,好比聲明瞭沒有用到的屬性等等
5->correctness 代碼的正確性 這一項應該算是最重要的了
主要是沒有對變量進行不爲空斷定,在特殊狀況可能發生空指針異常.
這篇文章還只是對FindBugs這個插件最主要的功能進行介紹,相信你能在使用過程當中發現這個工具更多的用法