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百
