編輯:關於Android編程
上一篇文章中我們講解了如何在android studio中進行單元測試。實際開發過程中有一些功能性的需求,比如測試工具類,測試數據存儲等測試工作,如果還是通過重復執行apk文件的編譯,安裝,運行等會浪費大量的時間,而這些功能與android的開發環境無太大的關系,我們完全可以使用單元測試來執行。android studio中默認是支持進行單元測試的,並提供了獲取Context等系統對象的API,我們可以通過其系統提供的API獲取Context等對象,進而測試相應的功能。
本文我們將講解android中的代碼Review。良好的產品開發迭代過程中,代碼Review是一個必不可少的步驟,通過代碼Review能夠提高產品質量,增強團隊成員之間的溝通,提高開發效率。所以團隊開發活動中定時進行代碼Review就顯得很有必要了。
一:什麼是代碼Review?
review字面的意思是再次查看,代碼review就是代碼再次查看評審的意思。這裡我們首先看一下百科中對代碼Review中的定義:
代碼評審是指在軟件開發過程中,通過對源代碼進行系統性檢查的過程。通常的目的是查找系統缺陷,保證軟件總體質量和提高開發者自身水平。 Code Review是輕量級代碼評審,相對於正式代碼評審,輕量級代碼評審所需要的各種成本要明顯低的多,如果流程正確,它可以起到更加積極的效果。正因如此,輕量級代碼評審經常性得被引入到軟件開發過程中。
我理解的代碼review就是在android開發過程中,每個迭代周期編碼結束之後測試之前,團隊成員之間相互查看對方的代碼,不一定是逐行逐句的查看,主要是對核心方法,編程思路有一個大概的評審查看。
二:代碼Review的好處
通過代碼Review可以提高產品代碼的質量
通過代碼Review可以增強團隊成員之間的溝通
通過代碼Review能夠有效的提前發現代碼中存在的缺陷與BUG,降低線上出現事故的概率
通過代碼Review可以提高團隊成員的編程能力,不同成員之間對功能設計思路的重構可以很好的提高團隊成員的個人專業技能
三:為何需要代碼Review
由於團隊成員之間既有新成員又有老成員,既有大神也有菜鳥,為了提高產品代碼質量,所以團隊成員在產品迭代周期中固定時間進行代碼Review有利於提高全隊成員對產品代碼的理解與個人能力的提高。
通過代碼Review,團隊成員對產品的每個模塊都有了認識,對App上出現的錯誤信息立即反饋與修復。
四:代碼Review實踐
團隊成員每周都會有固定的時間進行代碼Review,每次Review的時間大概在半小時至一小時之間。
主要流程:
每個人介紹各自的功能需求,實現的主要邏輯,核心代碼等;
團隊成員提出問題,其他實現思路等;
討論不同實現思路的方式以及優劣勢;
五:android代碼lint檢查
除了隊員之間的代碼Review,還可以通過android 代碼lint的方式review代碼。android studio默認已經提供了強大的lint檢查工具,通過其我們可以很方便的發現代碼中存在的問題,修正可能出現的bug等。
通過android studio編譯工具執行lint檢查操作(1)執行android studio –> Analyze –> Inspect code操作,打開代碼檢查框
(2)在代碼檢查框中選擇為整個工程執行lint檢查?還是整個module或者是當前的源文件執行lint檢查,這裡為了簡單起見,我們只為當前的源代碼文件執行lint檢查,然後執行確認即可
(3)接下來就可以在我們的android studio查看lint檢查結果了
可以發現我們lint檢查之後出現了許多檢查結果,其中在uuelectricrenter項目下存在著92條檢查信息,下面我們就分析一下檢測結果。
六:取消無用的lint檢查
Android > Lint > CZ喎?/kf/ware/vc/" target="_blank" class="keylink">vcnJlbnRuZXNzDQo8cD48aW1nIGFsdD0="這裡寫圖片描述" src="/uploadfile/Collfiles/20160715/20160715093046966.png" title="\" />可以看到在Correctness欄目下列出了出現問題的條目,而在右側則列出了出現問題的源碼文件,位置,問題描述,建議方案等:
可以發現該lint問題是在MainMapFragment源碼文件的188行,我們找到改源碼文件的第188行,看一下源碼是怎麼樣寫的:
rootView = inflater.inflate(R.layout.fragment_main_map, null);
可以發現使用布局加載器的時候調用inflate方法第二個parentView參數我們傳遞的是null,這時候lint檢查就會報錯,當然了在程序中這樣寫是沒有問題的,而我們以後不想lint檢查的時候在檢查出這個問題,那麼怎麼辦呢?
選中lint檢查條目 –> 右鍵 –> Disable inspection,這時候我們再次執行lint檢查,發現就無法檢測出這個問題了:
七:修復lint檢查異常
在看一個lint檢查結果:
好吧,這樣看的不是太清楚,我們看一下lint描述:
問題描述是:在MainMapFragment的1635行,調用setText方法的時候沒有使用string資源,那我們就看一下改行代碼的實現:
mTvMsg.setText("步行" + result);
可以看到我們為TextView設置text字符串的時候直接硬編碼寫入了text字符串,所以這時候報了lint檢查異常,這時候我們可以通過調用string資源的方式修改,然後再次執行lint檢查操作:
可以發現這時候已經沒有了剛剛的lint檢查異常。
八:如何設置lint檢查
android studio –> Perferences –> Deitor Inspections
一個簡單的設置lint檢查的例子
我們在android布局文件中為TextView設置text的時候可能直接硬編碼寫入字符串:
而這時候android studio並沒有為我們提示什麼錯誤信息,我們可以更改lint檢查提示,讓其一旦檢測到有布局文件硬編碼的情況就報錯,還是和上面的步驟一樣:
android studio –> perferences –> Editor –> Inspections –> Hadrcoded text
我們這時候修改器severity級別,由Warning更改為Error,這時候就可以看到錯誤信息了:
九:其他相關的lint檢查:
Android Studio Lint 自動檢查清除冗余資源
Android APK瘦身之Android Studio Lint (代碼審查)
Android自定義Lint實踐
十:關於lint檢查的快捷鍵
上文中我們講解的是通過:
android studio –> Analyze –> Inspect code
的方式執行lint檢查,android studio中還可以通過快捷鍵的方式直接打開lint檢查對話框:
shift + control + A –> 輸入Ins –> 選擇Inspect Code
這樣就可以直接打開lint檢查對話框了:
十一:android開發規范
代碼Review過程不單單是團隊check,代碼lint,一個好的開發規范也是很有必要的,這裡推薦我的另一篇文章:android產品研發(一)–>實用開發規范,個人感覺產品研發過程中,開發規范真的很重要,很重要,非常重要(重要的事情說三遍),一個好的開發規范可以讓團隊中的人對他人的代碼更熟悉,新人也可以更好的了解產品的業務邏輯。開發規范並不是一個死的一成不變的,每個團隊可能都有自己的開發規范,只要是適合團隊的開發規范就是最好的開發規范。
總結:
本文我們講解了android產品研發過程中代碼Review的相關知識,有團隊代碼Review,android studio代碼lint檢查,android開發規范等相關知識。代碼Review的方式不是非常重要,重要的是保持一個良好的代碼Review流程,這樣才能在不斷的代碼Review過程中提高產品代碼質量,增強團隊成員之間的溝通。
本文以同步至github中:https://github.com/yipianfengye/androidProject,歡迎star和follow
一.概述MVP(Model-View-Presenter) 是總所周知MVC模式的一個演變,他們的主要目的都是劃分模塊職責,降低模塊耦合,易測試,提高代碼復用,這裡主要針
本文實例講述了Android控件之ScrollView用法。分享給大家供大家參考。具體如下:ScrollView滾動視圖是指當擁有很多內容,屏幕顯示不完時,需要通過滾動跳
簡介項目開發中發現問題、解決問題這個過程中會出現很多問題,比如重復出現、某個問題的遺留,這些問題的本質就是設計模式。今天記錄設計模式的知識點。內容在java以及其他的面向
QQ5.0側滑效果實現方案有很多方式,今天我們使用ViewDragHelper來實現一下。先上效果圖:①自定義控件SlidingMenu繼承FrameLayout,放在F