Android開發(fā)使用的常見第三方框架匯總

1、volley

項(xiàng)目地址 https://github.com/smanikandan14/Volley-demo

(1) ?JSON,圖像等的異步下載;

(2) ?網(wǎng)絡(luò)請(qǐng)求的排序(scheduling)

(3) ?網(wǎng)絡(luò)請(qǐng)求的優(yōu)先級(jí)處理

(4) ?緩存

(5) ?多級(jí)別取消請(qǐng)求

(6) ?和Activity和生命周期的聯(lián)動(dòng)(Activity結(jié)束時(shí)同時(shí)取消所有網(wǎng)絡(luò)請(qǐng)求)

2、Android-async-http

項(xiàng)目地址:https://github.com/loopj/android-async-http

文檔介紹:http://loopj.com/android-async-http/

(1) 在匿名回調(diào)中處理請(qǐng)求結(jié)果

(2) 在UI線程外進(jìn)行http請(qǐng)求

(3) 文件斷點(diǎn)上傳

(4) 智能重試

(5) 默認(rèn)gzip壓縮

(6) 支持解析成Json格式

(7) 可將Cookies持久化到SharedPreferences

3、Afinal框架

項(xiàng)目地址:https://github.com/yangfuhai/afinal

主要有四大模塊:

(1)數(shù)據(jù)庫模塊:android中的orm框架,使用了線程池對(duì)sqlite進(jìn)行操作。

(2) 注解模塊:android中的ioc框架,完全注解方式就可以進(jìn)行UI綁定和事件綁定。無需findViewById和setClickListener等。

(3) 網(wǎng)絡(luò)模塊:通過httpclient進(jìn)行封裝http數(shù)據(jù)請(qǐng)求,支持ajax方式加載,支持下載、上傳文件功能。

(4) 圖片緩存模塊:通過FinalBitmap,imageview加載bitmap的時(shí)候無需考慮bitmap加載過程中出現(xiàn)的oom和android容器快速滑動(dòng)時(shí)候出現(xiàn)的圖片錯(cuò)位等現(xiàn)象。

FinalBitmap可以配置線程加載線程數(shù)量,緩存大小,緩存路徑,加載顯示動(dòng)畫等。FinalBitmap的內(nèi)存管理使用lru算法,

沒有使用弱引用(android2.3以后google已經(jīng)不建議使用弱引用,android2.3后強(qiáng)行回收軟引用和弱引用,詳情查看android官方文檔),

更好的管理bitmap內(nèi)存。FinalBitmap可以自定義下載器,用來擴(kuò)展其他協(xié)議顯示網(wǎng)絡(luò)圖片,比如ftp等。同時(shí)可以自定義bitmap顯示器,

在imageview顯示圖片的時(shí)候播放動(dòng)畫等(默認(rèn)是漸變動(dòng)畫顯示)。

4、xUtils框架

項(xiàng)目地址:https://github.com/wyouflf/xUtils

主要有四大模塊:

(1) 數(shù)據(jù)庫模塊:android中的orm框架,一行代碼就可以進(jìn)行增刪改查;

支持事務(wù),默認(rèn)關(guān)閉;

可通過注解自定義表名,列名,外鍵,唯一性約束,NOT NULL約束,CHECK約束等(需要混淆的時(shí)候請(qǐng)注解表名和列名);

支持綁定外鍵,保存實(shí)體時(shí)外鍵關(guān)聯(lián)實(shí)體自動(dòng)保存或更新;

自動(dòng)加載外鍵關(guān)聯(lián)實(shí)體,支持延時(shí)加載;

支持鏈?zhǔn)奖磉_(dá)查詢,更直觀的查詢語義,參考下面的介紹或sample中的例子。

(2) 注解模塊:android中的ioc框架,完全注解方式就可以進(jìn)行UI,資源和事件綁定;

新的事件綁定方式,使用混淆工具混淆后仍可正常工作;

目前支持常用的20種事件綁定,參見ViewCommonEventListener類和包c(diǎn)om.lidroid.xutils.view.annotation.event。

(3) 網(wǎng)絡(luò)模塊:支持同步,異步方式的請(qǐng)求;

支持大文件上傳,上傳大文件不會(huì)oom;

支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT請(qǐng)求;

下載支持301/302重定向,支持設(shè)置是否根據(jù)Content-Disposition重命名下載的文件;

返回文本內(nèi)容的請(qǐng)求(默認(rèn)只啟用了GET請(qǐng)求)支持緩存,可設(shè)置默認(rèn)過期時(shí)間和針對(duì)當(dāng)前請(qǐng)求的過期時(shí)間。

(4) 圖片緩存模塊:加載bitmap的時(shí)候無需考慮bitmap加載過程中出現(xiàn)的oom和android容器快速滑動(dòng)時(shí)候出現(xiàn)的圖片錯(cuò)位等現(xiàn)象;

支持加載網(wǎng)絡(luò)圖片和本地圖片;

內(nèi)存管理使用lru算法,更好的管理bitmap內(nèi)存;

可配置線程加載線程數(shù)量,緩存大小,緩存路徑,加載顯示動(dòng)畫等...

5、ThinkAndroid

項(xiàng)目地址:https://github.com/white-cat/ThinkAndroid

主要有以下模塊:

(1) ?MVC模塊:實(shí)現(xiàn)視圖與模型的分離。

(2) ?ioc模塊:android中的ioc模塊,完全注解方式就可以進(jìn)行UI綁定、res中的資源的讀取、以及對(duì)象的初始化。

(3) ?數(shù)據(jù)庫模塊:android中的orm框架,使用了線程池對(duì)sqlite進(jìn)行操作。

(4) ?http模塊:通過httpclient進(jìn)行封裝http數(shù)據(jù)請(qǐng)求,支持異步及同步方式加載。

(5) ?緩存模塊:通過簡(jiǎn)單的配置及設(shè)計(jì)可以很好的實(shí)現(xiàn)緩存,對(duì)緩存可以隨意的配置

(6) ?圖片緩存模塊:imageview加載圖片的時(shí)候無需考慮圖片加載過程中出現(xiàn)的oom和android容器快速滑動(dòng)時(shí)候出現(xiàn)的圖片錯(cuò)位等現(xiàn)象。

(7) ?配置器模塊:可以對(duì)簡(jiǎn)易的實(shí)現(xiàn)配對(duì)配置的操作,目前配置文件可以支持Preference、Properties對(duì)配置進(jìn)行存取。

(8) ?日志打印模塊:可以較快的輕易的是實(shí)現(xiàn)日志打印,支持日志打印的擴(kuò)展,目前支持對(duì)sdcard寫入本地打印、以及控制臺(tái)打印

(9) ?下載器模塊:可以簡(jiǎn)單的實(shí)現(xiàn)多線程下載、后臺(tái)下載、斷點(diǎn)續(xù)傳、對(duì)下載進(jìn)行控制、如開始、暫停、刪除等等。

(10) 網(wǎng)絡(luò)狀態(tài)檢測(cè)模塊:當(dāng)網(wǎng)絡(luò)狀態(tài)改變時(shí),對(duì)其進(jìn)行檢

6、LoonAndroid

項(xiàng)目地址:https://github.com/gdpancheng/LoonAndroid

主要有以下模塊:

(1) ?自動(dòng)注入框架(只需要繼承框架內(nèi)的application既可)

(2) ?圖片加載框架(多重緩存,自動(dòng)回收,最大限度保證內(nèi)存的安全性)

(3) ?網(wǎng)絡(luò)請(qǐng)求模塊(繼承了基本上現(xiàn)在所有的http請(qǐng)求)

(4) ?eventbus(集成一個(gè)開源的框架)

(5) ?驗(yàn)證框架(集成開源框架)

(6) ?json解析(支持解析成集合或者對(duì)象)

(7) ?數(shù)據(jù)庫(不知道是哪位寫的 忘記了)

(8) ?多線程斷點(diǎn)下載(自動(dòng)判斷是否支持多線程,判斷是否是重定向)

(9) ?自動(dòng)更新模塊

(10) 一系列工具類

7、KJFrameForAndroid

項(xiàng)目地址:http://git.oschina.net/kymjs/KJFrameForAndroid#git-readme

github項(xiàng)目地址:

https://github.com/kymjs/KJFrameForAndroid

備用項(xiàng)目地址:

http://Git.oschina.NET/kymjs/KJFrameForAndroid

KJFrameForAndroid又叫KJLibrary,是一個(gè)android的orm 和 ioc 框架。同時(shí)封裝了android中的Bitmap與Http操作的框架,使其更加簡(jiǎn)單易用;

KJFrameForAndroid的設(shè)計(jì)思想是通過封裝Android原生SDK中復(fù)雜的復(fù)雜操作而達(dá)到簡(jiǎn)化Android應(yīng)用級(jí)開發(fā),最終實(shí)現(xiàn)快速而又安全的開發(fā)APP。我們提倡用最少的代碼,完成最多的操作,用最高的效率,完成最復(fù)雜的功能。

同時(shí),KJFrameForAndroid是免費(fèi)的、開源的、簡(jiǎn)易的、遵循Apache Licence 2.0開源協(xié)議發(fā)布的android應(yīng)用開發(fā)框架,總共分為五大模 塊:UILibrary,UtilsLibrary,HttpLibrary,BitmapLibrary,DBLibrary。

8、AndroidAnnotations

xUtils是國(guó)內(nèi)比較火的快速開發(fā)框架,但是它的注解機(jī)制不是太穩(wěn)定而且注解可選也比較少,國(guó)外的一個(gè)框架主要專注于注解的開發(fā),簡(jiǎn)化Android代碼編寫,它除了有依賴注入的特性以外,還集成了Ormlite,spring-android中的REST模板。使用起來非常方便,大大提高了開發(fā)效率。

1.下載AndroidAnnotations:

git官網(wǎng):https://github.com/excilys/androidannotations

項(xiàng)目中重要的兩個(gè)jar包分別是:androidannotations-api-3.0.1.jar和androidannotations-3.0.1.jar

2.新建一個(gè)android項(xiàng)目,然后將androidannotations-api-3.0.1.jar復(fù)制到libs目錄下,在項(xiàng)目的根目錄新建一個(gè)文件夾,命名為compile-libs,然后將androidannotations-3.0.1.jar復(fù)制到該目錄下

3.在你的工程上右鍵單擊,在彈出的菜單中選擇"Properties",找到JavaCompiler,確保Compiler compliance level設(shè)置為1.6,否則的話處理器將不起作用

4.然后設(shè)置項(xiàng)目屬性:右鍵->Properties->JavaCompiler->Annotation Processing 在該頁面選中Enable project specific settings。

5.轉(zhuǎn)到Java Compiler 中的 Annotation Processing 下邊的 Factory Path,在此將androidannotations-3.0.1.jar添加到其中。

注解1:@ViewById 與findViewById功能相似,如果ViewById后沒有設(shè)置資源ID的話,就是自動(dòng)查找與變量名稱相同的id資源。

注解2:@Click 點(diǎn)擊事件處理的注解。

注解3:@UiThread 后臺(tái)Ui線程的注解,省去了Handler等等。

注解4:@EActivity 提示Activity的注解,注意,該注解將Activity編譯成Activity_,注意,多一個(gè)下劃線“_”,因此在AndroidManifest.xml文件中需要將其添加下滑線

注解5:@AfterViews 是指View類注入完畢之后執(zhí)行的代碼。



android-query框架

2.https://github.com/chrisbanes/Android-PullToRefresh類似新浪微博,twitter,下拉刷新列表, 更牛的是還支持上拉加載更多。 不僅僅是ListView,而且GridView也支持。

3.https://github.com/jfeinstein10/SlidingMenu和 https://github.com/dmitry-zaitsev/AndroidSideMenu 導(dǎo)航抽屜

https://github.com/SimonVT/android-menudrawer 導(dǎo)航抽屜

4.http://actionbarsherlock.com/與https://github.com/JakeWharton/ActionBarSherlock ? ?actionbar.

5https://github.com/TonicArtos/StickyGridHeadershttps://github.com/emilsjolander/StickyListHeadersListView導(dǎo)航特效

6https://github.com/TheLevelUp/android-left-locked-gallerygallery抽獎(jiǎng)效果

7https://github.com/huewu/PinterestLikeAdapterViewGridView錯(cuò)位效果https://github.com/youxiachai/pinterest-like-adapter-view

8 https://github.com/47deg/android-swipelistview實(shí)現(xiàn)了自定義ListView單元格,可通過滑動(dòng)來顯示擴(kuò)展面板。

9 https://github.com/siyamed/android-satellite-menu ?有一連串的按鈕彈出

10 https://github.com/maurycyw/StaggeredGridView 交錯(cuò)排列的GridView

https://github.com/dodola/android_waterfallhttps://github.com/youxilua/waterfall4android

https://github.com/dodola/WaterFallExt 瀑布流

11 https://github.com/daizhenjun/ImageFilterForAndroid ?圖片處理效果

12 https://github.com/nostra13/Android-Universal-Image-Loader 異步加載圖片,萬能圖片加載 ListView GridView ImagePage ImageGaller

實(shí)例:http://blog.csdn.net/banketree/article/details/8004475

13 https://github.com/JakeWharton/Android-ViewPagerIndicator 有標(biāo)題頁面滑動(dòng)效果

14 https://github.com/pakerfeldt/android-viewflow ViewFlow圖片滑動(dòng)

13https://code.google.com/p/android-wheel/滾輪效果

效果圖

14 http://www.apkbus.com/android-2-1.html

框架:

1.https://github.com/excilys/androidannotations一個(gè)很好的快速開發(fā)的框架, 大量使用annotation來代替,類似于RoboGuice

2 ormlite sqlite的orm框架 /GreenDAO

3 漢字轉(zhuǎn)拼音 pinyin4j 與 hanziTopinyin

4 AACPlayer

5 GSON json框架 fastjson

6 Otto是Android系統(tǒng)的一個(gè)Event Bus模式類庫。用來簡(jiǎn)化應(yīng)用組件間的通信。

7 afinal框架是一個(gè)開源的android的orm和ioc應(yīng)用開發(fā)框架

8xUtils源于Afinal框架對(duì)Afinal進(jìn)行了大量重構(gòu),使得xUtils支持大文件上傳,更全面的http請(qǐng)求協(xié)議支持

9 dom4j ?XML解析器

10VTD-XML一種無提取的XML解析方法http://my.oschina.net/u/1171837/blog/147544下載

11 android XMPP推送下載

12 jsoup網(wǎng)絡(luò)爬蟲

13 acra定制化Android crash上報(bào)庫及后臺(tái)系統(tǒng)

14 VLC 視頻聊天

16 SPydroidhttp://blog.csdn.net/xiaoliouc/article/details/8493161

項(xiàng)目篇:

Apollo音樂播放器:就一個(gè)播放器,但是實(shí)現(xiàn)的很好

oschina客戶端:oschina網(wǎng)站的客戶端哦,wp版,iOS版都有開源

xabber實(shí)時(shí)聊天工具(基于xmpp協(xié)議):不評(píng)價(jià)了,反正算是同類中比較好的了

四次元新浪微博客戶端:今天才知道是開源的,趕緊收藏

Google IO:谷歌開發(fā)者大會(huì)應(yīng)用,雖然有點(diǎn)難懂,還是很有參考價(jià)值(比如其中的圖片加載)

eoe客戶端:eoe網(wǎng)站Android客戶端也開源咯

組件篇:

Android-Flip:可以實(shí)現(xiàn)類似FlipBoard那種華麗麗的翻頁

Drag-Sort-Listview:可以拖動(dòng)item重新排序的listview,效果非常贊

HoloEveryWhere:咳咳,有些同學(xué)非常喜歡Android的holo風(fēng)格,這個(gè)項(xiàng)目絕對(duì)讓你happy

Universal-ImageLoader:這個(gè)經(jīng)典的異步圖片加載,不多說了

JazzyViewPager:這玩意可以讓ViewPager翻起來更酷,誰用誰知道~~

SlidingMenu:這個(gè)是抽屜界面(就是facebook那種)的各種實(shí)現(xiàn)版本中,最好的,木有之一!

StickyListHeaders:iPhone上經(jīng)常有這個(gè),就是listview的……不知道怎么解釋,自己下載看看吧

Android-PullToRefresh:下拉刷新,挺常用的一個(gè)組件

StaggeredGridView:這是一個(gè)瀑布流布局的實(shí)現(xiàn),還不是很完善,但作為學(xué)習(xí)的案例或者在其基礎(chǔ)上擴(kuò)展還是不錯(cuò)的

android-async-http:android的異步請(qǐng)求組件,我個(gè)人習(xí)慣使用asynctask,不過這個(gè)實(shí)現(xiàn)還是很優(yōu)秀的,也推薦給大家

ActionBarSherlock:大家熟知的ActionBar在2.x上的兼容性方案;類似的兼容性組件還有許多,有時(shí)間為大家一一列出;

facebook-android-sdk:不止是一個(gè)SDK那么簡(jiǎn)單哦,比某浪和某人的SDK強(qiáng)幾個(gè)數(shù)量級(jí);

NineOldAndroids:想在2.xSDK上使用Android 3.0新增的動(dòng)畫API,那就是它了;沒用過的同學(xué)一定要試試哦,非常方便~

android-swipelistview:讓listview的item可以向右滑動(dòng),新版Gmail和Pocket里面有用到哦~

DataDroid:Android的RESTful封裝,沒聽過RESTful?你去死吧

EventBus:和上面的DataDroid同樣屬于美化底層代碼的,這個(gè)lib簡(jiǎn)化了不同組件之間的事件傳遞

android-switch-backport:Android3.0以上才有的switch,有好心人給遷移到2.x上了,哈

PagerSlidingTabStrip:最新版的GooglePlay的那個(gè)tab效果,可炫可炫了

chromeview:我們都知道webview,也知道Android的chrome又自己的內(nèi)核,這個(gè)項(xiàng)目就是把chrome的內(nèi)核給導(dǎo)出來做成一個(gè)chromeview了,大家可以在自己的項(xiàng)目里用,有興趣的可以玩玩

picasso:來自square的圖片異步加載,好像是最近才開源的,API風(fēng)格很獨(dú)特

網(wǎng)站篇:

github:各種項(xiàng)目很多,就是不容易挖掘,但是開發(fā)者必備

oschina:曾經(jīng)一般,現(xiàn)在越做越好了,很多開源項(xiàng)目;

eoeandroid:經(jīng)過一番整理,現(xiàn)在非常強(qiáng)大;小作品居多;

AndroidViews:我曾經(jīng)想做這么一個(gè)網(wǎng)站來著,很多開源組件的集合

爬爬的博客

圖片處理框架:

圖片模糊處理:StackBlur

PDF框架: IText ?MuPDFdroidtextcom/sun/pdfviewcom.lowagie.text(iText-2.1.7)

1.SlidingMenu

官網(wǎng):https://github.com/jfeinstein10/SlidingMenu

網(wǎng)友使用:http://blog.csdn.net/yangyu20121224/article/details/9255829

2.android-async-http

https://github.com/loopj/android-async-http

3.PullToRefresh

下拉刷新

https://github.com/chrisbanes/Android-PullToRefresh

https://github.com/wuxia2001/mylove

https://github.com/hackerzhou/Love

商城:https://github.com/GeekZooStudio/ECMobile_Android

android 服務(wù)器Demo :https://github.com/NanoHttpd/nanohttpd

https://github.com/android-cjj

http://blog.csdn.net/dj0379/article/details/38356741

微信https://github.com/motianhuo/wechat/tree/master/WeChat

awesome-android-uihttps://github.com/wasabeef/awesome-android-ui

https://github.com/stormzhang/9GAG

漂亮的對(duì)話框:sweet-alert-dialoghttps://github.com/pedant/sweet-alert-dialog

Github上最火的開源項(xiàng)目:http://www.open-open.com/lib/view/open1388317199516.html

開源項(xiàng)目源碼分析:http://www.codekk.com/open-source-project-analysis

下拉刷新:http://blog.csdn.net/footballclub/article/details/46982115

點(diǎn)擊按鈕水波紋擴(kuò)散Demo:https://github.com/rey5137/material

http://www.aswifter.com/

開源控件庫文件匯總:http://www.fresco-cn.org/

漂亮的UI庫全部整理(ps:這個(gè)是別人整理的,我只是幫助分享):https://github.com/wasabeef/awesome-android-ui

android 圖表相關(guān)的庫:https://github.com/lubeast/MPAndroidChart

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容