標籤:
Android 開發架構匯總
時間過的真快,轉眼間就要進入到16年的8月了,現在應該是三伏期間,一個字“熱”。前端時間整理了一篇“JS前端架構匯總”,然後緊接著又抽時間學習了一下Android開發,在慕課網上學習了很多視頻,感覺收穫很大,有些事吧,得堅持,多瞭解些總不是什麼壞事。有時候我也會抽時間去國家圖書館看看,書的種類也沒有限制,逮著啥看啥。
今天以Android初學者的身份我也試著整理一下Android開發中常用到的一些架構,就當是學習成果,其實多半也是從網上搜的,然後做了一個匯總。那咱就開始吧:
一、AndroidAnnotations
描述:AndroidAnnotations是一個能夠讓你快速進行Android開發的開源架構,它能讓你專註於真正重要的地方。使代碼更加精簡,使項目更加容易維護,它的目標就是“Fast Android Development.Easy maintainance”。
特點:相比原生的Android開發,確實能夠讓你少些很多代碼,它的首頁也給出了一個簡單的例子,通過例子也可以看到代碼比之前幾乎少寫了一半
特性:(1).使用依賴注入(Dependency Injection)#本博接來下幾篇的文章將要介紹的開源組件都使用DI, 不熟悉的可以瞭解一下Inversion of Control(IoC)
(2).簡化的執行緒模式(Simplified threading model)
(3).事件綁定(Event binding)
(4).REST Client
(5).No Magic [不知道為什麼這樣稱呼,直譯過來就是:無魔法,它的意思是:AndroidAnnotations在編譯的時候會產生一個子類(接下來你會明白),你查看這個子類,可以看到它是如何工作的]
官網:http://androidannotations.org/
代碼地址:https://github.com/excilys/androidannotations/wiki
二、Volley
描述:Volley是 Google 推出的 Android 非同步網路請求架構和圖片載入架構。
特性:(1). 擴充性強。Volley 中大多是基於介面的設計,可配置性強。
(2). 一定程度符合 Http 規範,包括返回 ResponseCode(2xx、3xx、4xx、5xx)的處理,要求標頭的處理,緩衝機制的支援等。並支援重試及優先順序定義。
(3). 預設 Android2.3 及以上基於 HttpURLConnection,2.3 以下基於 HttpClient 實現,這兩者的區別及優劣在4.2.1 Volley中具體介紹。
(4). 提供簡便的圖片載入工具。
三、afinal架構
描述:afinal是一個開源的android的orm和ioc應用開發架構,其特點是小巧靈活,代碼入侵量少。在android應用開發中,通過afinal的ioc架構,諸如ui綁定,事件綁定,通過註解可以自動綁定。通過afinal的orm架構,無需任何配置資訊,一行代碼就可以對android的sqlite資料庫進行增刪改查操作。同時,afinal內嵌了finalHttp等簡單易用的工具,可以輕鬆的對http請求進行操作。
組成:(1).FinalHttp:用於請求http資料,直接ajax方式請求,檔案上傳, 斷點續傳下載檔案等
(2).FinalBitmap:用於顯示bitmap圖片,而無需考慮線程並發和oom等問題。
(3).FinalActivity:完全可以通過註解方式繫結控制項和事件,無需編寫代碼。
(4).FinalDb:android中sqlite的orm架構,一行代碼搞定增刪改查。
特點:設計簡單小巧靈活orm零配置,但可以配置,可以通過靈活的註解配置達到更加強大的功能資料庫查詢支援DbModel,可以輕鬆的進行各種複雜的查詢android的ui和事件綁定完全通過註解的方式,無需編寫一行代碼,http請求支援ajax方式請求,體積小(不到100KB),不依賴第三方jar包。
四、xUtils架構
描述:xUtils 包含了很多實用的android工具。xUtils 源於Afinal架構,對Afinal進行了大量重構,使得xUtils支援大檔案上傳,更全面的http請求協議支援,擁有更加靈活的ORM,更多的事件註解支援且不受混淆影響。同時需要注意的是,xUitls最低相容android 2.2 (api level 8)
組成:(1).ViewUtils:只需要一句註解,如@ViewInject、@OnClick,就能輕鬆擺脫小白似的代碼,大大的上了一個檔次。
(2).HttpUtils:支援的HTTP七種請求方式,非常便捷的滿足你的介面請求的需要。同時還支援大檔案上傳下載,以及同步非同步請求。
(3).BitmapUtils:你的程式因OOM強制關閉過嘛?你在為加在網狀圖標題疼嘛?有了組件,你將永久擺脫前面的問題。
(4).DbUtils:簡單易用又出色的ORM架構,真的是誰用誰知道,直接輕鬆儲存各種對象到sqlite資料庫中,同時也能非常方便的進行各種條件查詢,甚至分頁查詢,還有對錶中資料的更新刪除等操作,真正的實現。一行代碼就可以進行增刪改查。並且可通過註解自訂表格名,列名,外鍵,唯一性限制式,NOT NULL約束,CHECK約束等,支援事務。
五、UniversalImageLoader架構
描述:我們在開發APP的時候肯定遇到載入圖片的需求尤其是列表需要載入大量圖片的時候,那麼我們勢必需要進行下載圖片並且進行顯示。但是由於記憶體等各方面的問題多多少少會遇到一些問題;例如:列表載入圖片,圖片錯亂分布啦。
特性:(1).多線程下載圖片,圖片可以來源於網路,檔案系統,專案檔夾assets中以及drawable中等
(2).支援隨意的配置ImageLoader,例如線程池,圖片下載器,記憶體緩衝策略,硬碟緩衝策略,圖片顯示選項以及其他的一些配置
(3).支援圖片的記憶體緩衝,檔案系統快取或者SD卡緩衝
(4).支援圖片下載過程的監聽
(5).根據控制項(ImageView)的大小對Bitmap進行裁剪,減少Bitmap佔用過多的記憶體
(6).較好的控製圖片的載入過程,例如暫停圖片載入,重新開始載入圖片,一般使用在ListView,GridView中,滑動過程中暫停載入圖片,停止滑動的時候去載入圖片
(7).提供在較慢的網路下對圖片進行載入
總結:其實又做了一回詞條解釋的搬運工,將持續不斷更新。好了,就寫的這裡,我是Jerry百
Android 開發架構匯總