1. 程式人生 > >Android第三方框架彙總

Android第三方框架彙總

1、Volley 
專案地址 https://github.com/smanikandan14/Volley-demo
 (1)  JSON,影象等的非同步下載;
 (2)  網路請求的排序(scheduling)
 (3)  網路請求的優先順序處理
 (4)  快取
 (5)  多級別取消請求

 (6)  和Activity和生命週期的聯動(Activity結束時同時取消所有網路請求)


2、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


3、Afinal框架
專案地址:https://github.com/yangfuhai/afinal
主要有四大模組:
 (1) 資料庫模組:android中的orm框架,使用了執行緒池對sqlite進行操作。
 (2) 註解模組:android中的ioc框架,完全註解方式就可以進行UI繫結和事件繫結。無需findViewById和setClickListener等。
 (3) 網路模組:通過httpclient進行封裝http資料請求,支援ajax方式載入,支援下載、上傳檔案功能。
 (4) 圖片快取模組:通過FinalBitmap,imageview載入bitmap的時候無需考慮bitmap載入過程中出現的oom和android容器快速滑動時候出現的圖片錯位等現象。
             FinalBitmap可以配置執行緒載入執行緒數量,快取大小,快取路徑,載入顯示動畫等。FinalBitmap的記憶體管理使用lru演算法,
             沒有使用弱引用(android2.3以後google已經不建議使用弱引用,android2.3後強行回收軟引用和弱引用,詳情檢視android官方文件),
             更好的管理bitmap記憶體。FinalBitmap可以自定義下載器,用來擴充套件其他協議顯示網路圖片,比如ftp等。同時可以自定義bitmap顯示器,

             在imageview顯示圖片的時候播放動畫等(預設是漸變動畫顯示)。


4、xUtils框架
專案地址:https://github.com/wyouflf/xUtils
主要有四大模組:
  (1) 資料庫模組:android中的orm框架,一行程式碼就可以進行增刪改查;
            支援事務,預設關閉;
            可通過註解自定義表名,列名,外來鍵,唯一性約束,NOT NULL約束,CHECK約束等(需要混淆的時候請註解表名和列名);
            支援繫結外來鍵,儲存實體時外來鍵關聯實體自動儲存或更新;
            自動載入外來鍵關聯實體,支援延時載入;
            支援鏈式表達查詢,更直觀的查詢語義,參考下面的介紹或sample中的例子。          
  (2) 註解模組:android中的ioc框架,完全註解方式就可以進行UI,資源和事件繫結;
            新的事件繫結方式,使用混淆工具混淆後仍可正常工作;
            目前支援常用的20種事件繫結,參見ViewCommonEventListener類和包com.lidroid.xutils.view.annotation.event。
  (3) 網路模組:支援同步,非同步方式的請求;
            支援大檔案上傳,上傳大檔案不會oom;
            支援GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT請求;
            下載支援301/302重定向,支援設定是否根據Content-Disposition重新命名下載的檔案;
            返回文字內容的請求(預設只啟用了GET請求)支援快取,可設定預設過期時間和針對當前請求的過期時間。            
  (4) 圖片快取模組:載入bitmap的時候無需考慮bitmap載入過程中出現的oom和android容器快速滑動時候出現的圖片錯位等現象;
            支援載入網路圖片和本地圖片;

            記憶體管理使用lru演算法,更好的管理bitmap記憶體;

            可配置執行緒載入執行緒數量,快取大小,快取路徑,載入顯示動畫等...


5、ThinkAndroid
專案地址:https://github.com/white-cat/ThinkAndroid
主要有以下模組:
  (1)  MVC模組:實現檢視與模型的分離。
  (2)  ioc模組:android中的ioc模組,完全註解方式就可以進行UI繫結、res中的資源的讀取、以及物件的初始化。 
  (3)  資料庫模組:android中的orm框架,使用了執行緒池對sqlite進行操作。  
  (4)  http模組:通過httpclient進行封裝http資料請求,支援非同步及同步方式載入。
  (5)  快取模組:通過簡單的配置及設計可以很好的實現快取,對快取可以隨意的配置
  (6)  圖片快取模組:imageview載入圖片的時候無需考慮圖片載入過程中出現的oom和android容器快速滑動時候出現的圖片錯位等現象。
  (7)  配置器模組:可以對簡易的實現配對配置的操作,目前配置檔案可以支援Preference、Properties對配置進行存取。
  (8)  日誌列印模組:可以較快的輕易的是實現日誌列印,支援日誌列印的擴充套件,目前支援對sdcard寫入本地列印、以及控制檯列印
  (9)  下載器模組:可以簡單的實現多執行緒下載、後臺下載、斷點續傳、對下載進行控制、如開始、暫停、刪除等等。

  (10) 網路狀態檢測模組:當網路狀態改變時,對其進行檢


6、LoonAndroid 
專案地址:https://github.com/gdpancheng/LoonAndroid
主要有以下模組:
  (1)  自動注入框架(只需要繼承框架內的application既可)
  (2)  圖片載入框架(多重快取,自動回收,最大限度保證記憶體的安全性)
  (3)  網路請求模組(繼承了基本上現在所有的http請求)
  (4)  eventbus(整合一個開源的框架)
  (5)  驗證框架(整合開源框架)
  (6)  json解析(支援解析成集合或者物件)
  (7)  資料庫(不知道是哪位寫的 忘記了)
  (8)  多執行緒斷點下載(自動判斷是否支援多執行緒,判斷是否是重定向)
  (9)  自動更新模組
  (10) 一系列工具類



7、KJFrameForAndroid
專案地址:http://git.oschina.net/kymjs/KJFrameForAndroid#git-readme
github專案地址:
https://github.com/kymjs/KJFrameForAndroid
備用專案地址:
http://git.oschina.net/kymjs/KJFrameForAndroid
KJFrameForAndroid 又叫KJLibrary,是一個android的orm 和 ioc 框架。同時封裝了android中的Bitmap與Http操作的框架,使其更加簡單易用;
KJFrameForAndroid的設計思想是通過封裝Android原生SDK中複雜的複雜操作而達到簡化Android應用級開發,最終實現快速而又安全的開發APP。我們提倡用最少的程式碼,完成最多的操作,用最高的效率,完成最複雜的功能。

同時,KJFrameForAndroid是免費的、開源的、簡易的、遵循Apache Licence 2.0開源協議釋出的android應用開發框架,總共分為五大模 塊:UILibrary,UtilsLibrary,HttpLibrary,BitmapLibrary,DBLibrary。



8、AndroidAnnotations
xUtils是國內比較火的快速開發框架,但是它的註解機制不是太穩定而且註解可選也比較少,國外的一個框架主要專注於註解的開發,簡化Android程式碼編寫,它除了有依賴注入的特性以外,還集成了Ormlite,spring-android中的REST模板。使用起來非常方便,大大提高了開發效率。
1.下載AndroidAnnotations:
   Git官網:https://github.com/excilys/androidannotations
專案中重要的兩個jar包分別是:androidannotations-api-3.0.1.jar和androidannotations-3.0.1.jar
2.新建一個android專案,然後將androidannotations-api-3.0.1.jar複製到libs目錄下,在專案的根目錄新建一個資料夾,命名為compile-libs,然後將androidannotations-3.0.1.jar複製到該目錄下
3.在你的工程上右鍵單擊,在彈出的選單中選擇"Properties",找到Java Compiler,確保Compiler compliance level設定為1.6,否則的話處理器將不起作用
4.然後設定專案屬性:右鍵->Properties->Java Compiler->Annotation Processing 在該頁面選中Enable project specific settings。
5.轉到Java Compiler 中的 Annotation Processing 下邊的 Factory Path,在此將androidannotations-3.0.1.jar新增到其中。
註解1:@ViewById 與findViewById功能相似,如果ViewById後沒有設定資源ID的話,就是自動查詢與變數名稱相同的id資源。
註解2:@Click 點選事件處理的註解。
註解3:@UiThread 後臺Ui執行緒的註解,省去了Handler等等。
註解4:@EActivity 提示Activity的註解,注意,該註解將Activity編譯成Activity_,注意,多一個下劃線“_”,因此在AndroidManifest.xml檔案中需要將其新增下滑線
註解5:@AfterViews 是指View類注入完畢之後執行的程式碼。


9、Rajawali
介紹:
安卓的OpenGL ES 2.0/3.0 引擎。可以用於製作普通應用或者動態桌布,當然也可以用於製作遊戲。
專案地址: https://github.com/Rajawali/Rajawali



10、RxAndroid
介紹:
RxAndroid是RxJava的一個針對Android平臺的擴充套件。它包含了一些能夠簡化Android開發的工具。

專案地址: https://github.com/ReactiveX/RxAndroid


11、Paginize

介紹:
Paginize 是一個輕量級的UI框架,使用註解來注入佈局和view,除了使用註解之外,該框架還有兩個特色:1.用Page的概念來取代Fragment,2.切換page時自帶ios風格的動畫效果。
專案地址: https://github.com/neevek/Paginize



12、otto
介紹:
Otto 是square公司出的一個事件庫(pub/sub模式),用來簡化應用程式元件之間的通訊。 Otto 修改自Google的Guava庫,專門為Android平臺進行了優化。
專案地址: https://github.com/square/otto



13 、rebound
介紹:
rebound是facebook的開源動畫庫。可以認為這個動畫庫是獨立於android Framework之外的一種動畫實現。
專案地址: https://github.com/facebook/rebound



14、butterknife-view
注入工具
介紹:
為了減少頻繁的呼叫findViewById(R.id...),可以採用一些注入框架,可以簡化自己的程式碼,讓你更專注於實際的功能開發,butterknife就是這樣的一個框架,他是jakewharton大神的作品,值得一試。
class ExampleActivity extends Activity {
  @InjectView(R.id.title) TextView title;
  @InjectView(R.id.subtitle) TextView subtitle;
  @InjectView(R.id.footer) TextView footer;
  @Override public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.simple_activity);
    ButterKnife.inject(this);
    // TODO Use "injected" views...
  }
}

部落格地址:
http://jakewharton.github.io/butterknife/
專案地址: https://github.com/JakeWharton/butterknife



15、cube-sdk
一淘推出的開發框架
介紹:
cube一個Android開發包, 可極大提高你的開發效率。主要提供了圖片載入以及網路請求方面的api功能。
專案地址: https://github.com/etao-open-source/cube-sdk
他們的網站:http://cube-sdk.liaohuqiu.net/cn/



16、ASimpleCache 
一個簡單的快取框架
介紹:
ASimpleCache 是一個為android制定的 輕量級的 開源快取框架。輕量到只有一個java檔案(由十幾個類精簡而來)。 它可以快取什麼東西?普通的字串、JsonObject、JsonArray、Bitmap、Drawable、序列化的java物件,和 byte資料。
專案地址: https://github.com/yangfuhai/ASimpleCache



17、Event Bus
解耦android模組
介紹:
當一個Android應用功能越來越多的時候,保證應用的各個部分之間高效的通訊將變得越來越困難。如何優雅地解決這個問題?這時候,就需要使用到EventBus。 EventBus是GreenRobot出品的Android系統的一個Event Bus類庫,使用起來和之前我們所介紹的Square的Otto差不多,都是用來簡化應用元件之間的通訊。
專案地址: https://github.com/greenrobot/EventBus



18、BeeFramework_Android
介紹:
BeeFramework Android版主要為Android初級開發人員提供一個基於MVC開發模式的APP DEMO,並提供一套APP內除錯工具,包括 檢視網路資料請求歷史 Crash Log列表 真機WIFI環境下模擬2G\3G網路 檢視APP效能(記憶體佔用,CPU佔用等)

專案地址: https://github.com/BeeFramework/BeeFramework_Android




特效:
http://www.androidviews.net/
http://www.theultimateandroidlibrary.com/
https://github.com/novoda/ImageLoader  非同步載入圖片,快取,生成縮圖, 基本上每個應用都會需要這個lib。
    android-query框架
https://github.com/chrisbanes/Android-PullToRefresh   類似新浪微博,twitter,下拉重新整理列表, 更牛的是還支援上拉載入更多。 不僅僅是ListView,而且GridView也支援。
https://github.com/jfeinstein10/SlidingMenu 和 https://github.com/dmitry-zaitsev/AndroidSideMenu 導航抽屜 
   https://github.com/SimonVT/android-menudrawer 導航抽屜 
http://actionbarsherlock.com/  與https://github.com/JakeWharton/ActionBarSherlock    actionbar.
https://github.com/TonicArtos/StickyGridHeaders  與 https://github.com/emilsjolander/StickyListHeaders  ListView導航特效
https://github.com/TheLevelUp/android-left-locked-gallery gallery抽獎效果
https://github.com/huewu/PinterestLikeAdapterView  GridView錯位效果https://github.com/youxiachai/pinterest-like-adapter-view
https://github.com/47deg/android-swipelistview  實現了自定義ListView單元格,可通過滑動來顯示擴充套件面板。
https://github.com/siyamed/android-satellite-menu  有一連串的按鈕彈出
https://github.com/maurycyw/StaggeredGridView 交錯排列的GridView
https://github.com/dodola/android_waterfall  https://github.com/youxilua/waterfall4android
https://github.com/dodola/WaterFallExt 瀑布流
https://github.com/daizhenjun/ImageFilterForAndroid  圖片處理效果
https://github.com/nostra13/Android-Universal-Image-Loader 非同步載入圖片,萬能圖片載入 ListView GridView ImagePage ImageGaller
      例項:http://blog.csdn.NET/banketree/article/details/8004475
https://github.com/JakeWharton/Android-ViewPagerIndicator 有標題頁面滑動效果
https://github.com/pakerfeldt/android-viewflow ViewFlow圖片滑動
https://code.google.com/p/android-wheel/ 滾輪效果
http://www.apkbus.com/android-2-1.html


框架:

1 https://github.com/excilys/androidannotations  一個很好的快速開發的框架, 大量使用annotation來代替,類似於RoboGuice
2 ormlite sqlite的orm框架 /GreenDAO
3 漢字轉拼音 pinyin4j 與 hanziTopinyin
4 AACPlayer
5 GSON json框架 fastjson
6 Otto 是Android系統的一個Event Bus模式類庫。用來簡化應用元件間的通訊。
7 afinal框架是一個開源的android的orm和ioc應用開發框架
8 xUtils 源於Afinal框架 對Afinal進行了大量重構,使得xUtils支援大檔案上傳,更全面的http請求協議支援
9 dom4j  XML解析器
10 VTD-XML 一種無提取的XML解析方法 http://my.oschina.net/u/1171837/blog/147544 下載
11 android XMPP推送 下載
12 jsoup網路爬蟲
13 acra 定製化Android crash上報庫及後臺系統
14 VLC 視訊聊天
15 SPydroid http://blog.csdn.net/xiaoliouc/article/details/8493161



專案篇:

Apollo音樂播放器:就一個播放器,但是實現的很好
oschina客戶端:oschina網站的客戶端哦,wp版,iOS版都有開源
xabber實時聊天工具(基於xmpp協議):不評價了,反正算是同類中比較好的了
四次元新浪微部落格戶端:今天才知道是開源的,趕緊收藏
Google IO:谷歌開發者大會應用,雖然有點難懂,還是很有參考價值(比如其中的圖片載入)

eoe客戶端:eoe網站Android客戶端也開源咯



元件篇:
Android-Flip:可以實現類似FlipBoard那種華麗麗的翻頁
Drag-Sort-Listview:可以拖動item重新排序的listview,效果非常贊
HoloEveryWhere:咳咳,有些同學非常喜歡Android的holo風格,這個專案絕對讓你happy
Universal-ImageLoader:這個經典的非同步圖片載入,不多說了
JazzyViewPager:這玩意可以讓ViewPager翻起來更酷,誰用誰知道~~
SlidingMenu:這個是抽屜介面(就是facebook那種)的各種實現版本中,最好的,木有之一!
StickyListHeaders:iPhone上經常有這個,就是listview的……不知道怎麼解釋,自己下載看看吧
Android-PullToRefresh:下拉重新整理,挺常用的一個元件
StaggeredGridView:這是一個瀑布流佈局的實現,還不是很完善,但作為學習的案例或者在其基礎上擴充套件還是不錯的
android-async-http:android的非同步請求元件,我個人習慣使用asynctask,不過這個實現還是很優秀的,也推薦給大家
ActionBarSherlock:大家熟知的ActionBar在2.x上的相容性方案;類似的相容性元件還有許多,有時間為大家一一列出;
facebook-android-sdk:不止是一個SDK那麼簡單哦,比某浪和某人的SDK強幾個數量級;
NineOldAndroids:想在2.xSDK上使用Android 3.0新增的動畫API,那就是它了;沒用過的同學一定要試試哦,非常方便~
android-swipelistview:讓listview的item可以向右滑動,新版Gmail和Pocket裡面有用到哦~
DataDroid:Android的RESTful封裝,沒聽過RESTful?你去死吧
EventBus:和上面的DataDroid同樣屬於美化底層程式碼的,這個lib簡化了不同元件之間的事件傳遞
android-switch-backport:Android3.0以上才有的switch,有好心人給遷移到2.x上了,哈
PagerSlidingTabStrip:最新版的GooglePlay的那個tab效果,可炫可炫了
chromeview:我們都知道webview,也知道Android的chrome又自己的核心,這個專案就是把chrome的核心給匯出來做成一個chromeview了,大家可以在自己的專案裡用,有興趣的可以玩玩
picasso:來自square的圖片非同步載入,好像是最近才開源的,API風格很獨特
網站篇:
github:各種專案很多,就是不容易挖掘,但是開發者必備
oschina:曾經一般,現在越做越好了,很多開源專案;
eoeandroid:經過一番整理,現在非常強大;小作品居多;
AndroidViews:我曾經想做這麼一個網站來著,很多開源元件的集合
圖片模糊處理:StackBlur 
PDF框架: IText  MuPDF  droidtext  com/sun/pdfview  com.lowagie.text(iText-2.1.7)





1.SlidingMenu
官網:https://github.com/jfeinstein10/SlidingMenu
網友使用: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 伺服器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-ui  https://github.com/wasabeef/awesome-android-ui

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

漂亮的對話方塊: sweet-alert-dialog  https://github.com/pedant/sweet-alert-dialog

Github上最火的開源專案:http://www.open-open.com/lib/view/open1388317199516.html

開源專案原始碼分析:http://www.codekk.com/open-source-project-analysis

下拉重新整理:http://blog.csdn.net/footballclub/article/details/46982115

點選按鈕水波紋擴散Demo:https://github.com/rey5137/material

http://www.aswifter.com/

開源控制元件庫檔案彙總:http://www.fresco-cn.org/

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

android 圖表相關的庫:https://github.com/lubeast/MPAndroidChart

AChartEngine(簡稱ACE)是Google的一個開源圖表庫(for Android)。它功能強大,支援散點圖、折線圖、餅圖、氣泡圖、柱狀圖、短棒圖、儀表圖等多種圖表。

該專案地址位於: http://code.google.com/p/achartengine/

開源的 Material Design 豆瓣客戶端(A Material Design app for douban.com)
https://github.com/DreaminginCodeZH/Douya