Android 快速開發架構:推薦10個架構:afinal、ThinkAndroid、andBase、KJFrameForAndroid、SmartAndroid、dhroid..
對于Android初學者以及對于我們菜鳥,這些大神們開發的輕量級架構非常有用(更别說開源的了)。
下面轉載這10個架構的介紹:(按順序來吧沒有什麼排名)。
一、 Afinal
官方介紹:
Afinal是一個android的ioc,orm架構,内置了四大子產品功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通過finalActivity,我們可以通過注解的方式進行綁定ui和事件。通過finalBitmap,我們可以友善的加載bitmap圖檔,而無需考慮oom等問題。通過finalDB子產品,我們一行代碼就可以對android的sqlite資料庫進行增删改查。通過FinalHttp子產品,我們可以以ajax形式請求http資料。詳情請通過以下網址檢視。
Afinal 是一個android的sqlite orm 和 ioc 架構。同時封裝了android中的http架構,使其更加簡單易用;
使用finalBitmap,無需考慮bitmap在android中加載的時候oom的問題和快速滑動的時候圖檔加載位置錯位等問題。
Afinal的宗旨是簡潔,快速。約定大于配置的方式。盡量一行代碼完成所有事情。
項目位址:https://github.com/yangfuhai/afinal
功能:
一個android的ioc,orm架構,内置了四大子產品功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通過finalActivity,我們可以通過注解的方式進行綁定ui和事件。通過finalBitmap,我們可以友善的加載bitmap圖檔,而無需考慮oom等問題。通過finalDB子產品,我們一行代碼就可以對android的sqlite資料庫進行增删改查。通過FinalHttp子產品,我們可以以ajax形式請求http資料。
優點:功能比較全面,文檔完善,代碼效率比較高。
缺點:沒有項目demo,架構的時間比較久,代碼備援比較多(這也是無可避免的),文檔比較老跟不上代碼更新進度。
(這個評價是其他高人評的,他自己也有寫了架構。我個人覺得以前Afinal算是經典了 用的人多)。
二、 xUtils
git位址:https://github.com/wyouflf/xUtils
xUtils:可以說是Afinal的更新版。
xUtils 包含了很多實用的android工具。
xUtils 支援大檔案上傳,更全面的http請求協定支援(10種謂詞),擁有更加靈活的ORM,更多的事件注解支援且不受混淆影響...
xUitls 最低相容android 2.2 (api level 8)
三、 ThinkAndroid
項目位址:https://github.com/white-cat/ThinkAndroid
官方介紹:
ThinkAndroid是一個免費的開源的、簡易的、遵循Apache2開源協定釋出的Android開發架構,其開發宗旨是簡單、快速的進行Android應用程式的開發,包含Android mvc、簡易sqlite orm、ioc子產品、封裝Android httpclitent的http子產品,具有快速建構檔案緩存功能,無需考慮緩存檔案的格式,都可以非常輕松的實作緩存,它還基于檔案緩存子產品實作了圖檔緩存功能,在android中加載的圖檔的時候,對oom的問題,和對加載圖檔錯位的問題都輕易解決。他還包括了一個手機開發中經常應用的實用工具類,如日志管理,配置檔案管理,android下載下傳器子產品,網絡切換檢測等等工具
優點:功能看起來比較完善。個人覺得名字起的好。
缺點:從2013年就停止維護了,沒有項目文檔。
四、 LoonAndroid
官方介紹:
如果你想看ui方面的東西,這裡沒有,想要看牛逼的效果這裡也沒有。這隻是純實作功能的架構,它的目标是節省代碼量,降低耦合,讓代碼層次看起來更清晰。整個架構一部分是網上的,一部分是我改的,為了适應我的編碼習慣,還有一部分像orm完全是網上的元件。在此感謝那些朋友們。 整個架構式的初衷是為了偷懶,之前都是一個功能一個jar,做項目的時候拉進去,這樣對于我來說依然還是比較麻煩。最後就導緻我把所有的jar做成了一個工具集合包。 有很多架構都含有這個工具集合裡的功能,這些不一定都好用,因為這是根據我個人使用喜歡來實作的,如果你們有自己的想法,可以自己把架包解壓了以後,源碼拉出來改動下。 目前很多架構都用到了注解,除了androidannotations沒有入侵我們應用的代碼以外,其他的基本上都有,要麼是必須繼承架構裡面的activity,要麼是必須在activity的oncreat裡面調用某個方法。 整個架構式不同于androidannotations,Roboguice等ioc架構,這是一個類似spring的實作方式。在整應用的生命周期中找到切入點,然後對activity的生命周期進行攔截,然後插入自己的功能。
開源位址:https://github.com/gdpancheng/LoonAndroid
功能:
1自動注入架構(隻需要繼承架構内的application既可)
2圖檔加載架構(多重緩存,自動回收,最大限度保證記憶體的安全性)
3網絡請求子產品(繼承了基本上現在所有的http請求)
4 eventbus(內建一個開源的架構)
5驗證架構(內建開源架構)
6 json解析(支援解析成集合或者對象)
7 資料庫(不知道是哪位寫的 忘記了)
8 多線程斷點下載下傳(自動判斷是否支援多線程,判斷是否是重定向)
9 自動更新子產品
10 一系列工具類
有點:功能多
缺點:文檔方面
五、 KJFrameForAndroid
項目位址:https://github.com/kymjs/KJFrameForAndroid
官方介紹:
KJFrameForAndroid 又叫KJLibrary,是一個android的orm 和 ioc 架構。同時封裝了android中的Bitmap與Http操作的架構,使其更加簡單易用;
KJFrameForAndroid的設計思想是通過封裝Android原生SDK中複雜的複雜操作而達到簡化Android應用級開發,最終實作快速而又安全的開發APP。我們提倡用最少的代碼,完成最多的操作,用最高的效率,完成最複雜的功能。
功能:
一個android的orm 和 ioc 架構。同時封裝了android中的Bitmap與Http操作的架構,使其更加簡單易用; KJFrameForAndroid開發架構的設計思想是通過封裝Android原生SDK中複雜的複雜操作而達到簡化Android應用級開發,最終實作快速而又安全的開發APP。總共分為五大子產品:UILibrary,UtilsLibrary,HttpLibrary,BitmapLibrary,DBLibrary。
優點:功能比較全面,代碼效率很高,文檔完善,有項目demo,出來的比較晚借鑒了很多大型架構經驗。
缺點:項目文檔是html頁面,檢視起來很不友善,項目交流平台沒多少人說話(難道大神都是不說話的?)
(這兩個評價是KJFrameForAndroid的作者對自己的評價,個人覺得作者是個天才。他的評價可能剛寫完網上釋出後寫的。我在給他更新評價。因為現在已經過去了幾個月一直在時不時更新。功能很全,項目文檔也很全面,而且代碼裡注釋最多 這方面這個很難得。交流平台人很多挺熱鬧,作者希望更熱鬧這樣架構越來越完善。對于初學者希望看到Demo更完善)
六、 dhroid
官方介紹:
dhroid 是基于android 平台, 極速開發架構,其核心設計目标是開發迅速、代碼量少、學習簡單、功能強大、輕量級、易擴充.使你更快,更好的開發商業級别應用
開源位址: http://git.oschina.net/tengzhinei/dhroid
功能:
1.Ioc容器: (用過spring的都知道)視圖注入,對象注入,接口注入,解決類依賴關系
2.Eventbus: android平台事件總線架構,獨創延時事件,事件管理輕松
3.Dhnet: 網絡http請求的解決方案,使用簡單,減少代碼,自帶多種網絡通路緩存政策
4.adapter子產品: 資料綁定輕松,不用寫多餘的adapter,天生網絡支援(一行代碼搞定加載,重新整理問題)
5.DhDb: android中sqlite的最輕量orm架構(增删改查輕松搞定)
6.Perference: android自帶Perference 更新版,讓你的Perference更強大,更友善
工具集合 JSONUtil(安全處理json),ViewUtil(資料綁定更快) ThreadWorker(異步任務工具)...
優點:功能全面,有demo,作者也是為公司開發的架構。
缺點:文檔方面現在不是很好,就eoe上的那些。
七、 SmartAndroid
項目位址:http://www.aplesson.com/smartAndroid/demos
官方介紹:
SmartAndroid是一套給 Android開發者使用的應用程式開發架構和工具包。它提供一套豐富的标準庫以及簡單的接口和邏輯結構,其目的是使開發人員更快速地進行項目開發。使用 SmartAndroid可以減少代碼的編寫量,并将你的精力投入到項目的創造性開發上。
功能:
SmartAndroid 擁有全範圍的類庫,可以完成大多數通常需要的APP開發任務,包括: 異步網絡操作相關所有功能、強大的圖檔處理操作、輕量級ORM資料庫Sqlite庫、zip操作 、動畫特效、Html等解析采集、事件總線EventBus/Otto、Gson(Json)、AQuery、主流所有UI控件(例如:ActionbarSherlock,SlidingMenu,BottomView,Actionbar,DragListView等10多種UI庫)等。
優點:功能非常全,超出你索要、文檔完善(作者很全面,官方網站是web響應式網站,架構裡功能有UI各種特效應該最全了,一直更新中)
缺點:jar包大點?(功能多不可避免,不是問題),線上文檔(随響應式的手機通路也友善,但是網速慢就不好了,頁面打開不是很流暢)
八、 andBase
官方介紹:
andbase是為Android開發者量身打造的一款開源類庫産品
開源位址:https://code.jd.com/zhaoqp2010_m/andbase
功能:
1.andbase中包含了大量的開發常用手段。
如網絡下載下傳,多線程與線程池的管理,資料庫ORM,圖檔緩存管理,圖檔檔案下載下傳上傳,Http請求工具,常用工具類(字元串,日期,檔案處理,圖檔處理工具類等),能夠使您的應用在團隊開發中減少備援代碼,很大的提高了代碼的維護性與開發高效性,能很好的規避由于開發疏忽而導緻常犯的錯誤。
2.andbase封裝了大量的常用控件。
如list分頁,下拉重新整理,圖檔輪播,表格,多線程下載下傳器,側邊欄,圖檔上傳,輪子選擇,圖表,Tab滑動,月曆選擇器等。
3.強大的AbActivity,您沒有理由不繼承它。
繼承它你能夠獲得一個簡單強大可設定的操作欄,以及一系列的簡單調用,如彈出框,提示框,進度框,副操作欄等。
4.提供效率較高圖檔緩存管理政策,使記憶體大幅度節省,使用率提高,效率提高。
程式中要管理大量的圖檔資源,andbase提供簡單的方法,幾步完成下載下傳與顯示,并支援縮放,裁剪,緩存功能。
5.封裝了大量常見工具類。
包括日期,字元,檔案,圖檔等各種處理函數,多而全。
6.用andbase大量減少handler的使用,而采用回調函數,代碼更整潔。
handler會産生大量代碼,并且不好維護,andbase對handler進行了封裝。
7.簡單輕量支援注解自動建表的ORM架構(支援一/多對多的關聯操作)。
寫sql,建表,工作量大,andbase提供更傻瓜異步增删改查工具類。
8.異步請求http架構,網絡請求标準化,支援檔案上傳下載下傳,get,post,進度顯示。
包含了異步與http請求的工具類,實用。
9.熱情的支援群體。
優點:功能很全,demo做的好 、API文檔完善、接近完美
缺點:希望文檔更詳細些。
九、 AndroidAnnotations
項目位址:https://github.com/excilys/androidannotations
功能:
完全注解架構,一切皆為注解:聲明控件,綁定控件,設定監聽,setcontentview,長按事件,異步線程,全部通過注解實作。
優點:完全的注解,使開發起來更加便利,程式員寫的代碼也更少。
缺點:文檔是全英文的加上功能比較少沒有具體研究,由于一切都是注解,感覺效率不高,不過根據官方介紹說并不是使用的反射加載,是以效率比一般注解高很多。
十、 volley
項目位址: https://github.com/smanikandan14/Volley-demo
功能:
Volley是Android平台上的網絡通信庫,能使網絡通信更快,更簡單,更健壯異步加載網絡圖檔、網絡資料
優點:Google官方推薦,請看去年的開發者大會介紹。
缺點:功能比較少,隻有網絡資料加載和網絡圖檔加載
十一、 android-async-http
項目位址:https://github.com/loopj/android-async-http
文檔介紹:http://loopj.com/android-async-http/
(1) 在匿名回調中處理請求結果
(2) 在UI線程外進行http請求
(3) 檔案斷點上傳
(4) 智能重試
(5) 預設gzip壓縮
(6) 支援解析成Json格式
(7) 可将Cookies持久化到SharedPreferences
有點:很簡單很實用
缺點:功能比較少, (隻是針對的功能不是什麼缺點)
十二、 ……