標籤:
首先開發工具當然不能用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的架構中已經解決了。而這些架構也有開源的。
因此本人考慮以第三庫的形式匯入這些架構,為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這裡就不多說了。
如果你覺得本文對你有所協助請關注我的公眾號:zhaojieTec,更多內容敬請期待.....
使用最新最酷的安卓開發技術