Android开发总结
? ? ?出來工作半年多了,沒啥好交代的,就說說自己半年來的Android開發(fā)經(jīng)歷。
1.IDE
? ? ?這半年來,從Eclipse到Android Studio,經(jīng)歷了兩個IDE,在這里做一下簡單的評價。
? ? ?如果真要說,Android Studio是基本上大勝Eclipse的,至少Android Studio不會像Eclipse那樣卡,公司配的電腦是渣了點,64位,win7,只有4G內(nèi)存,跑Eclipse跑久了簡直就是噩夢。
? ? ?Android Studio的智能提示比Eclipse強多了,快捷鍵也很強大。至于工程的組織結(jié)構(gòu),Android Studio和Eclipse的差距還是很大的,但習(xí)慣了也不覺得有啥,哪種都行。
? ? ?Android Studio有個不好的地方就是無法在同一個窗口顯示多個工程,所以只能多開一個。。。
? ? ?Android Studio采用Gradle構(gòu)建,一開始的構(gòu)建簡直是喪心病狂。。。如果沒有VPN,想都不敢想。。。構(gòu)建上,Eclipse是比Android Studio快,但Android Studio導(dǎo)第三方庫很方便,寫一個Gradle腳本就行,并且配置上更加靈活。可以這樣說:Eclipse是幫我們搭好了房子,我們只要熟悉它就行,而Android Studio是讓我們用工具去搭建自己喜歡的房子。
? ? 更加重要的是,aar包只能由Android Studio構(gòu)建,而谷歌現(xiàn)在推崇的方式就是aar包,所以以后開源的項目很有可能都是打成aar包,并且基本上,大部分的開源項目已經(jīng)是采用Gradle構(gòu)建。。。
? ? Android Studio一個不好的地方就是升級太快,在半年的 時間內(nèi),我從0.8.1升級到1.0。。。可惡的是,每次升級,Gradle也升級,并且還斷代。。。雖然么官方現(xiàn)在是版本穩(wěn)定了,因為IDEA已經(jīng)出了新版本了,但我試過1.0出事了,直接撤回0.9.4。。。
? ? 總體而言,未來Android開發(fā)一定是用Android Studio或者IDEA,Eclipse已經(jīng)被官方拋棄了。。。
2.版本控制工具
? ? ?我使用SVN比較少,剛工作的時候,剛好就是把SVN換成Git,但對于Git的使用方式也經(jīng)歷了一番變化。
? ? ?一開始使用Git,就像SVN一樣,一個master分支,大家都往上面推,一旦出事了,大家都卡住了。。。后來使用SourceTree做管理,分支切換,提交和解決沖突好多了。現(xiàn)在的開發(fā)模式是這樣的:
? ? ?master分支是正式分支,在沒確保穩(wěn)定之前是不會推東西上去的,dev分支是開發(fā)分支,而每個人本地也有一個dev分支,大家可以根據(jù)自己的需求在本地開多幾個分支,這樣就不會出現(xiàn)master分支無法發(fā)布的現(xiàn)象,因為master分支永遠是正確的。
? ? ?遺憾的是,由于使用的是工具,對命令行還是不熟悉。。。
3.數(shù)據(jù)庫
? ? ?數(shù)據(jù)庫一開始采用的是原生,編寫了一大堆Helper,而且光是存表,就已經(jīng)寫了很多代碼,一個一個set進去。。。后來換成對象數(shù)據(jù)庫LitePal,好多了,但LitePal本身的效率是原生的三分之一,但基本的情況已經(jīng)足夠了。。。不過,必須直視的是,LitePal的功能支持還不夠完善,一開始不支持索引,后來的版本才支持,并且很多情況下,采用Sql語句都比使用LitePal的接口方法方便多了,LitePal的查找數(shù)據(jù)竟然是根據(jù)那個自增長的id。。。。只要稍微改一下,LitePal還是很好用的,尤其是對象一建好,表就建好了,特別方便,還有就是數(shù)據(jù)庫的升級也非常方便。
? ? ?有個不好的地方就是,可以直接操作表對象,這樣很可能就會將不想存的數(shù)據(jù)存進表里,于是就封裝了一下,不能直接操作表對象,而是操作實體對象,數(shù)據(jù)庫的操作都是通過實體對象的接口方法,而接口方法調(diào)用的就是表對象的方法。
4.網(wǎng)絡(luò)庫和異步庫
? ? ?這部分的工作并不是我做的,但還是可以說一下。
? ? ?一開始是自己封裝的網(wǎng)絡(luò)庫,但封裝得太復(fù)雜了,很難維護,而且它不是一個簡單的網(wǎng)絡(luò)庫,是一個網(wǎng)絡(luò)異步和本地異步一起實現(xiàn)的庫,基于大量的回調(diào),使用起來也是不錯的。
? ? ?后來換成Volley,不過就發(fā)現(xiàn)Volley的實現(xiàn)不太滿足我們的要求,就用OkHttp將Volley的底層改掉,然后上層的接口形式采用鏈式調(diào)用的方式,代碼的形式更加簡單。
? ? ?原生的異步AsnyTask簡直就是個坑,它就是一個任務(wù)隊列,多個任務(wù)執(zhí)行并不是并發(fā)的,有可能就卡在其中一個出不來了。。。試過debug的時候跳進去就跳不出來了。。。后來就自己寫了一個,也是采用鏈式調(diào)用的接口形式。
5.事件
? ? ?采用EventBus作為事件管理,簡直就是爽。簡簡單單就可以跨線程,跨組件通信,很多以前要很復(fù)雜才能實現(xiàn)的功能一下子就可以實現(xiàn)了。
6.UI
? ? ?UI上,倒是很難講的一個方面,采用ButterKnife減少了工作量,并且基本上采用組件思想,能夠提煉出組件的就變成組件,方便替換,而且形式上,偏近于MVVM的形式,可以針對業(yè)務(wù)邏輯編寫單元測試,原因就是邏輯業(yè)務(wù)都在ViewModel上。
? ? ?大體籠統(tǒng)的就是這幾個方面,后面有時間會針對具體的方面進行闡述。
?
總結(jié)
以上是生活随笔為你收集整理的Android开发总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SCII码表 键盘常用ASCII码
- 下一篇: 微信诗歌 转载