標籤:
對於開發人員而言,瞭解當下比較流行的開源項目很是必要。利用這些項目,有時能夠讓你達到事半功倍的效果。為此,CSDN特整理了GitHub上最受歡迎的Android及iOS開源項目,本文詳細介紹了20個Android開源項目。
GitHub在中國的火爆程度無需多言,越來越多的開源項目遷移到GitHub平台上。更何況,基於不要重複造輪子的原則,瞭解當下比較流行的Android與iOS開源項目很是必要。利用這些項目,有時能夠讓你達到事半功倍的效果。為此,CSDN特整理了在GitHub平台上最受歡迎的Android及iOS開源項目,以饗開發人員。
下面,就讓我們一起來看看,在GitHub平台上,究竟有哪些Android開源項目最火,也最受開發人員歡迎。
1. ActionBarSherlock
ActionBarSherlock應該算得上是GitHub上最火的Android開源項目了,它是一個獨立的庫,通過一個API和主題,開發人員就可以很方便地使用所有版本的Android動作欄的設計模式。
對於Android 4.0及更高版本,ActionBarSherlock可以自動使用本地ActionBar實現,而對於之前沒有ActionBar功能的版本,基於Ice Cream Sandwich的自訂動作欄實現將自動圍繞布局。能夠讓開發人員輕鬆開發一款帶動作欄(Action bar)的應用,並且適用於Android 2.x及其以上所有版本。
詳情請參考:ActionBarSherlock
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
- VLC for Android
- ESPN ScoreCenter
- MLS MatchDay
- 9GAG
- Wunderlist 2
- The Verge
- MTG Familiar
- Mantano Reader
- Falcon Pro (BETA)
- MW3 Barracks
4. cocos2d-x
在移動開發領域,將Cocos2D-X用於主流iOS/Android遊戲開發的公司、Team Dev多不勝數。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的庫(主要是圖形、字串和動畫),但這些後來都已被取代。
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的項目,且自此之後,經過大規模的重構和改進。
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布局。
- 顯示當前可見螢幕的指標。
20. android-flip
Aphid FlipView是一個能夠實現Flipboard翻頁效果的UI組件。
在《直接拿來用!最火的Android開源項目(一)》中,我們詳細地介紹了GitHub上最受歡迎的TOP20 Android開源項目,引起了許多讀者的熱議,作為開發人員,你最常用的是哪些開源項目?使用起來是否能讓你得心應手?今天,我們將介紹另外20個Android開源項目,在這些項目中,你又用到了哪些呢?
21. drag-sort-listview
DragSortListView(DSLV)是Android ListView的一個擴充,支援拖拽排序和左右滑動刪除功能。重寫了TouchInterceptor(TI)類來提供更加優美的拖拽動畫效果。
DSLV主要特性:
- 完美的拖拽支援;
- 在拖動時提供更平滑的滾動列表滾動;
- 支援每個ListItem高度的多樣性
- 公開startDrag()和stopDrag()方法;
- 有公開的介面可以自訂拖動的View。
DragSortListView適用於帶有任何優先順序的列表:收藏夾、播放清單及清單等,算得上是目前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等主StreamCompute機與移動作業系統,可直接工作在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應用自動將崩潰報告以Google文檔電子錶的形式進行發送的庫,旨在當應用發生崩潰或出現錯誤行為時,開發人員可以擷取到相關資料。
39. roboguice
RoboGuice是Android平台上基於Google Guice開發的一個庫,可以大大簡化Android應用開發的代碼及一些繁瑣重複的代碼。給Android帶來了簡單、易用的依賴注入,如果你使用過Spring或Guice的話,你就會知道這種編程方式是多麼的便捷。
40. otto
Otto是由Square發布的一個著重於Android支援的基於Guava的強大的事件匯流排,在對應用程式不同部分進行解耦之後,仍然允許它們進行有效溝通。
詳情請參考:Otto
GitHub上最火的Android開源項目(四十個)