使用最新最酷的Android開發技術
原文 http://www.cnblogs.com/zhaojietec/p/4926314.html
首先開發工具當然不能用eclipse咯,當然得用android studio。api版本當然必須是23+,以支持cardview、receiveview、百分比布局等。
另外還有引入android support v7、android support design,這樣界面的效果就不會太差了,也就是metal design的風格。
然后除了界面之外,還需要訪問數據庫,網絡請求等。
對于數據庫操作,android有相應的函數可以操作sqlite,不過默認的方式要用sql語句來操作,不是很方便快捷,所以就要用ORM,那么greenDao怎么樣呢? greenDao本人之前用過,雖然效率比較高,但實際上使用起來很麻煩,于是又用xutils提供的dbutils使用起來方便了很多,目前并沒有感覺到有效率的問題。
使用orm雖然可以讓數據庫的讀寫很方便,但是還有一個問題,就是擴展起來不方便,程序還在開發的時候問題不大,只要修改實體類,然后框架就可以重新創建表,這樣很好的,但程序一旦發布,就不能隨便改了。因此考慮使用nosql,基于android的nosql也有很多的,前端時間看到 SnappyDB感覺還不錯,可以考慮引入。
網絡操作有Volley可以用,數據格式用json比較好,有的地方使用webservice 基于xml的SOAP協議之類,本人認為xml的格式并沒有什么好處,SOAP之類的協議也算是比較老了,很顯然json更簡潔更節省流量,而且可以和 web端js更好的結合。反正都是基于http協議(json的解析,使用fastjson)。
不過對于volley本人并沒有用到cookie和https,另外好像也不能上傳圖片,有待研究,或者有什么其他更好的框架。
對于安卓應用嵌入webview是很常見的,以顯示文字、圖片類所謂富媒體內容,或者用html5來擴展應用或用html5實現某些界面,所謂hybrid。
不過要讓應用支持hybrid特性還是有很多問題需要考慮的,不是簡單嵌入webview就可以的,如js代碼和java交互等。但實際上很多問題在一些使用html5來開發移動應用的框架中已經解決了。而這些框架也有開源的。
因此本人考慮以第三庫的形式導入這些框架,為app提供webview的支持,同時具有hybrid特性,另外這些框架有很多擴展庫可以用,因此這看起來是個非常好的主意。
如果注意看一下微信,微信使用了html5來擴展功能,在公眾號可以加入鏈接來打開手機網站,另外還提供js-api來調用app中的一些功能,如相冊、拍照等。
如果app的代碼可以放在服務器端,動態更新,當然是非常好的,實現上也有一些工具可以讓程序代碼動態更新,不過對于這樣的工具本人并沒有用過,考慮到代碼混淆等問題,對這種方式本人表示懷疑,有時間可以試試看。
ReactNative使用js來編寫原生應用,也可以實現代碼的動態更新,另外使用類似css的方式來編寫界面,這看起來也很不錯。 android開發中使用xml的方式來定義界面,本人感覺并不好,很啰嗦有很多重復和干擾的東西。也許ReactNative定義界面的方式會更好(有待研究)。
android使用java來編碼,然而java怎么樣呢,如果和c/c++比較java當然更好了(對于人來說),但是相比更高級的編程語言就會覺得不太好了,至少我感覺java的語句看起來太長了。正是因為如此,就有基于jvm的動態語言,如groovy,groovy2.4以后是支持安卓的,不過我覺得也沒有更換編程語言的必要。
實際上我覺得應該用groovy去改善安卓編寫界面的方式(xml),groovy中所謂DSL,gradle中聲明依賴庫的方式就比 maven中的pom.xml看起來好過了,更為重要的是使用groovy腳本來作為配置文件就可以使用判斷循環等,這樣就非常靈活了。因此如果可以用 groovy腳本來定義安卓界面,一定比xml的方式好玩多了。
好了,先就寫這么多了,有一些還是設想,可能不切實際,有待研究。另外還有圖片加載、推送、地圖、支付甚至語言識別、語言合成等都有可以用的sdk這里就不多說了。