背景 隨著事情越來越多,我們必須提高我們的工作效率,才能有更多的時(shí)間去深入學(xué)習(xí)更多的知識。下面我將會把我在Android項(xiàng)目中運(yùn)用到的一些提高開發(fā)效率的經(jīng)驗(yàn)分享出來,如果你有更好的建議,懇請指導(dǎo)。
一、定義apk文件的輸出路徑 我使用的是Android Studio寫Android程序,以往我們編譯.apk文件后,系統(tǒng)會默認(rèn)把該文件放在app/build/outputs/apk目錄下,我們需要層層打開目錄才能找到該.apk,顯然這是比較耗時(shí)的。其實(shí)我們可以在app下的build.gradle里定義我們apk的名稱與輸出路徑:
def fileName = “sample_${defaultConfig.versionName}_${defaultConfig.versionCode}.apk"def outputPathName = "/Users/yourname/Desktop/apk/${fileName}";路徑:在android/buildTypes/release下面的實(shí)現(xiàn)
applicationVariants.all { variant -> variant.outputs.each { output -> output.outputFile = new File(outputPathName) }}我把該路徑定義在桌面的apk文件夾里,這樣非常方便我們對其進(jìn)行做一些操作或發(fā)布。
二、使用git的分支特性來開發(fā)新功能 對git比較熟悉的估計(jì)看到上面這標(biāo)題已經(jīng)懂我要說什么。但還是希望講給沒有使用過的朋友聽,打比方說,過去我們已經(jīng)開發(fā)了ReleaseA版本,里面的列表顯示都是使用ListView實(shí)現(xiàn),現(xiàn)在我們想要在上面嘗試使用RecycleView實(shí)現(xiàn),我們可能會在原來代碼上面改,或者拷貝一份代碼出來改然后再merge回去,這樣的操作顯然效率很低,如果我們使用git branch來操作會變得非常簡單。
三、多造輪子,免去不必要的開發(fā)成本 比如分享功能、支付功能、一些常用的UI組件,甚至一些通用的strings.xml/colors.xml/drawable資源,我們都可以將其集成為lib供各個(gè)項(xiàng)目使用,有人說這影響了代碼的靈活性,但是java的繼承、抽象、接口等特性,足以應(yīng)付這些靈活性。需要注意的是記得在必要的類里定義TAG,并輸出一些關(guān)鍵信息的log,以方便后期調(diào)試。
四、接口規(guī)范 之前接觸過一個(gè)項(xiàng)目,服務(wù)端返回的json串十分不規(guī)范,JsonObject與JsonArray傻傻沒有區(qū)分,導(dǎo)致客戶端這邊開發(fā)十分困難,參考《品訊返回的不規(guī)范數(shù)據(jù)總結(jié)》。所以如果你是項(xiàng)目負(fù)責(zé)人,請嚴(yán)格監(jiān)管好這些規(guī)范,以提高開發(fā)的效率。 并且接口文檔也應(yīng)該規(guī)范書寫,不太建議使用Word/Excel書寫,網(wǎng)上有許多做得很不錯(cuò)的在線接口文檔管理系統(tǒng),如果擔(dān)心泄密,可將開源的接口文檔管理系統(tǒng)部署在私服,公司使用的是“小幺雞”,極大地提高了我們的工作效率。
五、使用maven管理通用代碼 由于公司的特殊性,我們需要做大量的項(xiàng)目,而項(xiàng)目中很大一部分代碼都是可以通用的,比如util、view、manager,還有一些第三方組件,如果要在每個(gè)項(xiàng)目里都重復(fù)拷貝一份通用的代碼,那是很笨的方法。建議使用maven去管理這些通用代碼,并做好版本兼容管理。公司目前是公司的服務(wù)器上部署maven,管理起來非常方便,又不擔(dān)心泄密。
六、盡量減少重復(fù)的代碼 第三條經(jīng)驗(yàn)是針對項(xiàng)目與項(xiàng)目級別的,而這里想說的是代碼級別的。代碼中可多寫B(tài)aseActivity、BaseListActivity、BaseFragment這樣的父類,好處相信很多人都理解。另外layout資源可以通過include重復(fù)利用layout,style里面也可以通過parent實(shí)現(xiàn)繼承。
七、多寫注釋 隨著項(xiàng)目增加,很多時(shí)候回去看過去的代碼會忘記某個(gè)類或方法是實(shí)現(xiàn)什么功能的,或者要注意點(diǎn)什么,但這些在你實(shí)現(xiàn)它們的時(shí)候是清楚的,所以建議在實(shí)現(xiàn)的時(shí)候就把這些注釋寫好,一來方便以后查看,二來也方便后來的人查看。
八、使用別人的輪子 記得剛開發(fā)Android的時(shí)候,整個(gè)網(wǎng)絡(luò)框架都是自己寫的,然后緩存、多線程的問題愣是沒有解決好,直到遇到了Google官方的Volley才將所有問題解決。網(wǎng)上還有一些評價(jià)非常高的輪子,比如okHttp、LiteOrm、Gson等等,都能極大提高你的工作效率,但是還是建議多選擇官方的組件、多選擇代碼開源組件,免得掉坑。
新聞熱點(diǎn)
疑難解答