寫在前面
Android Studio的強大其實遠超我們的想象,只不過我們沒有發(fā)現(xiàn)而已,以下的幾點優(yōu)化技巧都是通過AS進行的(如果大家有用過,可以忽略)号胚。
1,Long Method
意思就是函數(shù)過長浸遗,我們可以通過AS發(fā)現(xiàn)我們工程中哪里存在函數(shù)過長的問題猫胁。如下操作
Android studio 工具欄 Analyze –> Run inspection by name
輸入 long ,出現(xiàn) Overly long method跛锌,選擇點擊弃秆,會出現(xiàn)一個新的界面,在這個界面里可以選擇對整個工程,或者module或者文件進行分析菠赚,根據(jù)分析結果盼樟,我們可以有選擇性的去對函數(shù)進行優(yōu)化,一般來說锈至,每個函數(shù)的功能都是單一的,過長的函數(shù)可以拆分為幾個小函數(shù)译秦,比如峡捡,查詢和修改的職責要分開。
2筑悴,Too many parameters
意思就是函數(shù)參數(shù)過多们拙,操作同上,不過關鍵字輸入too many para阁吝,選擇Method with too many parameters砚婆,同樣,再選擇分析的范圍突勇,得到結果装盯,有針對的選擇優(yōu)化。
3甲馋,Redundant local variable
冗余局部變量埂奈,代碼中不可避免的會出現(xiàn)一些冗余的局部變量,我們可以找到它定躏,然后刪除账磺。關鍵字輸入redundant,后面同上痊远。
4垮抗,Unused Declaration
無用函數(shù),這個問題出現(xiàn)主要是由歷史遺留導致碧聪,有的需求可能已經(jīng)不存在了冒版,但是代碼還保留著工程中,我們也可以找到他們矾削,有針對的刪除壤玫。關鍵字輸入Unused Declaration。
5哼凯,Unused method parameter
無用函數(shù)參數(shù)欲间,保持一個良好的代碼規(guī)范還是很重要的,同上断部,不多說猎贴。
6,infer
Infer 是 Facebook 開源的靜態(tài)代碼檢查工具,可檢查 Android 和 Java 代碼中的 NullPointException 和 資源泄露她渴。Android studio 已經(jīng)將 infer 集成到工具欄里面达址,點擊 Analyze->infer Nullity,根據(jù)分析結果趁耗,可以定位到具體的代碼文件沉唠,然后我們去手動判斷或者直接點擊“Infer Nullity Annotations”, 工具直接幫我去完成改造結果。ps苛败,試了一下满葛,結果我們的工程差不多每個文件都被改了。罢屈。嘀韧。
7,F(xiàn)indBugs
FindBugs 是一個開源的靜態(tài)代碼分析工具缠捌,無需運行工程就能對代碼進行分析的工具锄贷。它不注重 style 及 format,注重檢測真正的 bug 及潛在的性能問題 曼月,以 bytecode(.class谊却、.jar)為對象進行檢查。除了單獨運行十嘿,還可以用作 Android-studio 的 Plug-in因惭。據(jù)說,它可以檢測檢測 java programing 中容易陷入的 bug pattern绩衷,比如equals()實現(xiàn)時的一般規(guī)約違反 Null pointer 的參照 蹦魔,Method 的返回值的 check 遺漏 ,初始化前 field 的訪問咳燕, Multi-thread 的正確性勿决,無條件的 wait,Code 的脆弱性 招盲,可以變更的靜態(tài) object 低缩,內部數(shù)列參照的 return 等。
AS可以通過插件的方式安裝曹货,具體安裝大家都會就不多說了咆繁。關鍵字Findbugs,重啟AS顶籽,Enable Android FindBugs玩般,工具欄analyze,最下方會出現(xiàn)它礼饱。然后就可以對工程進行分析了坏为。至于分析結果究驴,大家自己看。
以上匀伏,僅供參考洒忧,其實我感覺提到的這些,無非是從幾個方面告訴我們要有一個良好的編碼格式和規(guī)范够颠,避免因一些低級的錯誤導致程序的崩潰熙侍。至于發(fā)現(xiàn)bug或者潛在的性能問題,還需要實踐履磨。