Android代碼優(yōu)化技巧

寫在前面

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或者潛在的性能問題,還需要實踐履磨。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末核行,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蹬耘,更是在濱河造成了極大的恐慌,老刑警劉巖减余,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件综苔,死亡現(xiàn)場離奇詭異,居然都是意外死亡位岔,警方通過查閱死者的電腦和手機如筛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來抒抬,“玉大人杨刨,你說我怎么就攤上這事〔两#” “怎么了妖胀?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長惠勒。 經(jīng)常有香客問我赚抡,道長,這世上最難降的妖魔是什么纠屋? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任涂臣,我火速辦了婚禮,結果婚禮上售担,老公的妹妹穿的比我還像新娘赁遗。我一直安慰自己,他們只是感情好族铆,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布岩四。 她就那樣靜靜地躺著,像睡著了一般骑素。 火紅的嫁衣襯著肌膚如雪炫乓。 梳的紋絲不亂的頭發(fā)上刚夺,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天,我揣著相機與錄音末捣,去河邊找鬼侠姑。 笑死,一個胖子當著我的面吹牛箩做,可吹牛的內容都是我干的莽红。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼邦邦,長吁一口氣:“原來是場噩夢啊……” “哼安吁!你這毒婦竟也來了?” 一聲冷哼從身側響起燃辖,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤鬼店,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后黔龟,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妇智,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年氏身,在試婚紗的時候發(fā)現(xiàn)自己被綠了巍棱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡蛋欣,死狀恐怖航徙,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情陷虎,我是刑警寧澤到踏,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站尚猿,受9級特大地震影響夭禽,放射性物質發(fā)生泄漏。R本人自食惡果不足惜谊路,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一讹躯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧缠劝,春花似錦潮梯、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至脱羡,卻和暖如春萝究,著一層夾襖步出監(jiān)牢的瞬間免都,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工帆竹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留绕娘,地道東北人。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓栽连,卻偏偏與公主長得像险领,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子秒紧,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,095評論 25 707
  • afinalAfinal是一個android的ioc绢陌,orm框架 https://github.com/yangf...
    passiontim閱讀 15,429評論 2 45
  • 用到的組件 1、通過CocoaPods安裝 2熔恢、第三方類庫安裝 3脐湾、第三方服務 友盟社會化分享組件 友盟用戶反饋 ...
    SunnyLeong閱讀 14,613評論 1 180
  • 歐陽娜拉
    微微牛閱讀 500評論 0 0
  • 這是我的第六篇原創(chuàng)文章。 酒能越陳越香叙淌,因為時間的作用沥割,與周圍世界發(fā)生了反應。一座城市凿菩,經(jīng)歷時間越長,越有它的故事...
    顏滿媛閱讀 159評論 0 0