天天看點

【Android】GitHub Android 開源項目彙總

github 上的開源項目不勝枚舉,越來越多的開源項目正在遷移到github平台上。基于不要重複造輪子的原則,了解當下比較流行的android與ios開源項目很是必要。利用這些項目,有時能夠讓你達到事半功倍的效果。

1. actionbarsherlock(推薦)

actionbarsherlock應該算得上是github上最火的android開源項目了,它是一個獨立的庫,通過一個api和主題,開發者就可以很友善地使用所有版本的android動作欄的設計模式。

對于android 4.0及更高版本,actionbarsherlock可以自動使用本地actionbar實作,而對于之前沒有actionbar功能的版本,基于ice cream sandwich的自定義動作欄實作将自動圍繞布局。能夠讓開發者輕松開發一款帶動作欄(action bar)的應用,并且适用于android 2.x及其以上所有版本。

詳情請參考:actionbarsherlock

【Android】GitHub Android 開源項目彙總

2. facebook-android-sdk

facebook sdk for android是一個開源庫,允許開發者将facebook內建到所開發的android應用中。

如果想要擷取更多關于示例、文檔、将sdk內建到app中、源代碼等資訊,可直接登陸facebook developers檢視。

3. slidingmenu(slidingmenu demos)

slidingmenu是一個開源的android庫,能夠讓開發者輕松開發一款應用,實作類似于google+、youtube和facebook應用中非常流行的滑動式菜單。

使用slidingmenu的android應用:

foursquare

rdio 

plume 

4. cocos2d-x

在移動開發領域,将cocos2d-x用于主流ios/android遊戲開發的公司、開發團隊多不勝數。cocos2d-x是一個開源的支援多平台的2d遊戲架構,使用c++開發,基于cocos2d-iphone,在mit許可證下釋出。主分支在github上使用opengl es 2.0渲染,而舊版gles11分支則使用opengl es 1.1渲染。

支援ios、android、windows phone 8、bada、blackberry、marmalade、windows、linux等多個平台。支援c++、lua、javascript程式設計語言。

5. android

github android app是github開源的android用戶端,支援issues、gists,并內建了新聞feed,能夠讓你及時跟進組織及關注的開發者、庫等。同時,該應用還提供了一個使用者快速通路你所建立、監控及釋出issue的面闆,可檢視并将問題加入到收藏夾,可對标簽、裡程碑和任務進行過濾配置。

android資源庫包含了github android app的所有源代碼。

6. android-viewpagerindicator

viewpager指針項目,在使用viewpager的時候能夠訓示viewpager所在的位置,就像google play中切換的效果一樣,還能使用在應用初始化的介紹頁面。

相容android支援庫的viewpager及actionbarsherlock,最初是基于patrik Åkerfeldt的viewflow,開發者可以直接登陸google play下載下傳該項目的示範應用。

7. monogame

monogame是一個microsoft xna 4.x framework的開源跨平台實作。用于讓xna開發者将他們在xbox 360、windows & windows phone上開發的遊戲移植到ios、android、mac os x、linux及windows 8 metro上,目前,playstation mobile & raspberry pi的開發正在進行中。

詳情請參考:monogame

8. android-pulltorefresh(推薦)

該項目用于為android提供一個可重用的下拉重新整理部件。它最初來源于johan nilsson的庫(主要是圖形、字元串和動畫),但這些後來都已被取代。

【Android】GitHub Android 開源項目彙總

9. android-async-http(推薦)

android-async-http是android上的一個異步、基于回調的http用戶端開發包,建立在apache的httpclient庫上。

10. android-universal-image-loader(推薦)

android上最讓人頭疼的莫過于從網絡擷取圖檔、顯示、回收,任何一個環節有問題都可能直接oom,這個項目或許能幫到你。

universal image loader for android的目的是為了實作異步的網絡圖檔加載、緩存及顯示,支援多線程異步加載。它最初來源于fedor vlasov的項目,且自此之後,經過大規模的重構和改進。

【Android】GitHub Android 開源項目彙總

11. greendroid

greendroid最初是由cyril mottier發起,是一個android的ui開發類庫,能夠讓ui開發更加簡便,并且在應用中始終保持一緻。

詳情請參考:cyril mottier's blog

12. anki-android

ankidroid是一個免費、開源的android的閃存應用,可直接從google play進行下載下傳。

詳情請參考:ankidroid

13. android-actionbar

action bar是一個辨別應用程式和使用者位置的視窗功能,并且給使用者提供操作和導航模式。在大多數的情況下,當開發者需要突出展現使用者行為或在全局導航的activity中使用action bar,因為action bar能夠使應用程式給使用者提供一緻的界面,且系統能夠很好地根據不同的螢幕配置來适應操作欄的外觀。

action bar的主要目的:

提供一個用于識别應用程式的标示和使用者的位置的專用空間。

在不同的應用程式之間提供一緻的導航和視覺體驗。

突出activity的關鍵操作,并且在可預見的方法内給使用者提供快捷的通路。

14. android-viewflow

android-viewflow是android平台上的一個視圖切換的效果庫,viewflow相當于android ui部件提供水準滾動的viewgroup,使用adapter進行條目綁定。

15. android-mapviewballoons

當使用android地圖外部庫(com.google.android.maps)時,android-mapviewballoons會提供一個簡單的方式來對地圖覆寫進行标注,就是一個簡單的資訊氣泡。

它由balloonoverlayview組成,是一個代表顯示你的mapview及balloonitemizedoverlay的氣泡的視圖,balloonitemizedoverlay是itemizedoverlay的一個抽象擴充。

16. pushsharp

一個向ios(iphone/ipad apns)、android(c2dm和gcm)、windows phone和windows 8裝置發送推送通知的伺服器端庫。

17. androidannotations

android annotations是一個開源的架構,用于加速 android應用的開發,可以讓你把重點放在功能的實作上,簡化了代碼,提升了可維護性。

18. hockeykit

hockey是一個ios ad-hoc自動更新架構。蘋果app store中的所有app都可以使用它,它能夠顯著地提高beta測試的整個過程,分為兩部分:伺服器和用戶端架構。伺服器元件需要所有腳本,但在沒有用戶端庫的情況下,也可以單獨工作。它提供一個web接口,beta測試者可以使用它來安裝最新的adhoc配置檔案,也可以直接在裝置上通過safari安裝最新的beta版本。

隻需在伺服器上安裝一次服務端,就可以處理包辨別符不同的多個應用程式(有開發者強烈建議對debug、adhoc beta和appstore釋出版使用不同的包辨別符)。

預設當app啟動或喚醒時,用戶端會從伺服器檢測更新,使用者可以在設定對話框中進行修改:一天一次或手動檢查更新。

除了支援ios,hokeykit也支援android平台,不過android版還處在alpha階段,支援ota及應用内更新。

為hockeykit使用者提供伺服器托管服務。

19. android-menudrawer(推薦)

android上的菜單展示風格各異,其中用得最多且體驗最好的莫過于左右滑動來顯示隐藏的菜單,android-menudrawer是一個滑動式菜單實作,允許使用者在應用當中實作無縫導航。該項目具有多種菜單展示效果,其中最常見的就是通過螢幕邊緣拖動或點選動作欄的“向上”按鈕顯示。

實作功能:

菜單可以沿着四個邊放置。

支援附加一個始終可見、不可拖動的菜單。

菜單的内容和整個視窗都可以隐藏。

可用于xml布局。

顯示目前可見螢幕的訓示器。

【Android】GitHub Android 開源項目彙總
【Android】GitHub Android 開源項目彙總

20. android-flip

aphid flipview是一個能夠實作flipboard翻頁效果的ui元件。

21. drag-sort-listview(推薦)

dragsortlistview(dslv)是android listview的一個擴充,支援拖拽排序和左右滑動删除功能。重寫了touchinterceptor(ti)類來提供更加優美的拖拽動畫效果。

dslv主要特性:

完美的拖拽支援;

在拖動時提供更平滑的滾動清單滾動;

支援每個listitem高度的多樣性

公開startdrag()和stopdrag()方法;

有公開的接口可以自定義拖動的view。

dragsortlistview适用于帶有任何優先級的清單:收藏夾、播放清單及清單等,算得上是目前android開源實作拖動排序操作最完美的方案。

【Android】GitHub Android 開源項目彙總

22. c-geo-opensource

c:geo是android裝置上一個簡單而又強大的非官方地理尋寶用戶端。與其他類似應用不同的是,c:geo不需要web浏覽器,也不需要檔案輸出。你可以在毫無準備的情況下,毫無後顧之憂地帶上你的智能手機去進行地理尋寶。當然,你也不需要付錢,因為它是免費的。

c-geo-opensource包含了c:geo所有開源代碼。

詳情請參考:c:geo

23. nineoldandroids

自android 3.0以上的版本,sdk新增了一個android.animation包,裡面的類都是跟動畫效果實作相關的,通過honeycomb api,能夠實作非常複雜的動畫效果。但如果開發者想在3.0以下的版本中也能使用到這套api,那麼nine old androids就會是你最好的選擇,該api和honeycomb api完全一樣,隻是改變了你使用com.nineoldandroids.xxx的入口。

該項目包含兩個工程,一個是library,即為動畫效果的實作庫,另一個則是sample,是對如何使用該api的示範。開發者可以直接登陸google play下載下傳安裝nine old androids sample,檢視示範。

詳情請參考:nine old androids

24. ppsspp

ppsspp是由gc/wii模拟器dolphin聯合創始人之一henrik rydgård開發的一款免費的跨平台開源模拟器,支援windows、linux、mac、android、ios、blackberry 10等主流計算機與移動作業系統,可直接工作在x86、x64、arm等cpu平台上,以gnu gplv2許可協定釋出,主要使用c++編寫以提高效率和可移植性。

隻要支援opengl es 2.0,ppsspp就可以在相當低規格的硬體裝置上運作,包括基于arm的手機及平闆電腦。

詳情請參考:ppsspp

25. androidquery

android-query(aquery)是一個輕量級的開發包,用于實作android上的異步任務和操作ui元素,可讓android應用開發更簡單、更容易,也更有趣。

26. droid-fu

droid-fu是一個開源的通用android應用庫,其主要目的是為了讓android開發更容易,包含有許多工具類,還有非常易用的android元件。

droid-fu提供支援的領域包括:

android應用的生命周期幫助

支援處理intents和diagnostics類

背景任務支援

http消息處理

對象、http響應及遠端圖像高速緩存

定制各種adapter及view

droid-fu最大的優勢在于它的應用生命周期幫助類,如果你正在開發一款android應用,而它的主要任務是運作背景任務,比如從web上抓取資料,那麼,你一定會使用到droid-fu,不過,目前該項目在github上已經停止更新維護。

詳情請參考:droid-fu

27. textsecure(推薦)

textsecure是whisper systems團隊開發的一個android上的加密資訊用戶端,旨在增強使用者和企業通信的安全性,其源代碼于2011年被twitter釋出在github開源資料庫中。

該軟體允許使用者将在android裝置上所有發送和接收的短信内容進行加密,還可以将加密資訊發送給另一個textsecure使用者。

28. xobotos

xobotos是xamarin的一個研究項目,用于将android 4.0從java/dalvik移植到c#,并對移植後的性能及記憶體占用情況進行檢測。

29. ignition

在編寫android應用時,通過提供即用元件和包含許多樣闆檔案的實用類,ignition可以讓你的android應用快速起步。ignition涵蓋的區域包括:

widget、adapter、dialog等ui元件;

允許編寫簡單卻強大的網絡代碼的http wrapper庫;

加載遠端web圖像并進行緩存的類;

簡單但有效的緩存架構(将對所有對象樹做出響應的http緩存到記憶體或硬碟中);

intents、diagnostics等幾個能讓api級别更容易向後相容的幫助類;

更友好、更強大的asynctask實作。

ignition包括三個子項目:

ignition-core——是一個可以直接編譯到app中的android庫項目。

ignition-support——一個标準的java庫項目,被部署為一個普通的jar,包含了大部分實用工具類。開發者可以獨立使用該工程的核心子產品。

ignition-location——一個可以直接編譯到應用程式中的android aspectj庫項目。能夠讓定位應用在不需要activity位置更新處理的情況下擷取到最新的位置資訊。

詳情請參考:ignition sample applications

30. android_page_curl

android_page_curl是一個在android上使用opengl es實作類似書本翻頁效果的示例程式。(點選連結檢視視訊示範)

31. asmack

說到asmack,自然要先提提smack。smack api是一個完整的實作了xmpp協定的開源api庫,而asmack則是smack在android上的建構版本,于2013年2月初遷移到github上,該資源庫并不包含太多的代碼,隻是一個建構環境。開發者可以利用該api進行基于xmpp協定的即時消息應用程式開發。

詳情請參考:asmack

32. androidbillinglibrary(推薦)

in-app billing是一項google play服務,能夠讓你在應用内進行數字内容銷售,可銷售的數字内容範圍非常廣,包括媒體檔案、照片等下載下傳内容,還包括遊戲級别、藥劑、增值服務和功能等虛拟内容。android billing library可以實作in-app billing的所有規範,并提供更進階的類來進行使用。

google于2012年底正式釋出了v3版android in-app billing,但截至目前,github上的android billing library還隻能支援到v2版,據悉google将于2013年初對它進行更新。

詳情請參考:google play in-app billing

33. crouton

crouton是android上的一個可以讓開發者對環境中的toast進行替換的類,以一個應用程式視窗的方式顯示,而其顯示位置則由開發者自己決定。

開發者可以直接登陸google play下載下傳安裝crouton demo,檢視應用示範。

34. cwac-endless

commonsware android components(cwac)是一個開源的android元件庫,用來解決android開發中各個方面的常見問題,每個 cwac元件打包成一個獨立的jar檔案,其中就包含cwac-endless。

cwac-endless提供一個endlessadapter,這是一個自動分頁的list,當使用者浏覽到list最後一行時自動請求新的資料。

詳情請參考:commons ware

35. disklrucache

在android應用開發中,為了提高ui的流暢性、響應速度,提供更高的使用者體驗,開發者常常會絞盡腦汁地思考如何實作高效加載圖檔,而disklrucache實作正是開發者常用的圖檔緩存技術之一。disk lru cache,顧名思義,硬體緩存,就是一個在檔案系統中使用有限空間進行高速緩存。每個緩存項都有一個字元串鍵和一個固定大小的值。

點選連結下載下傳該庫項目。

36. android-slideexpandablelistview

如果你對android提供的android expandablelistview并不滿意,一心想要實作諸如spotify應用那般的效果,那麼slideexpandablelistview絕對是你最好的選擇。該庫允許你自定義每個清單項目中的listview,一旦使用者點選某個按鈕,即可實作該清單項目區域滑動。

37. gauges-android

gaug.es for android是由gaug.es推出的一款在android裝置上對網站流量資料進行實時統計的應用。gauges-android包含了該應用的源代碼,開發者可以直接登陸google play下載下傳安裝該應用。

38. acra

acra是一個能夠讓android應用自動将崩潰報告以谷歌文檔電子表的形式進行發送的庫,旨在當應用發生崩潰或出現錯誤行為時,開發者可以擷取到相關資料。

39. roboguice

roboguice是android平台上基于google guice開發的一個庫,可以大大簡化android應用開發的代碼及一些繁瑣重複的代碼。給android帶來了簡單、易用的依賴注入,如果你使用過spring或guice的話,你就會知道這種程式設計方式是多麼的便捷。

40. otto

otto是由square釋出的一個着重于android支援的基于guava的強大的事件總線,在對應用程式不同部分進行解耦之後,仍然允許它們進行有效的溝通。

詳情請參考: otto