天天看點

Android 快速開發架構:推薦10個架構:afinal、ThinkAndroid、andBase、KJFrameForAndroid、SmartAndroid、dhroid..

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 

有點:很簡單很實用

缺點:功能比較少, (隻是針對的功能不是什麼缺點)

十二、   ……