GitHub在中國的火爆程度無需多言,愈來愈多的開源項目遷移到GitHub平臺上。更況且,基於不要重複造輪子的原則,瞭解當下比較流行的Android與iOS開源項目非常必要。利用這些項目,有時可以讓你達到事半功倍的效果。爲此,CSDN特整理了在GitHub平臺上最受歡迎的Android及iOS開源項目,以饗開發者。php
下面,就讓咱們一塊兒來看看,在GitHub平臺上,究竟有哪些Android開源項目最火,也最受開發者歡迎。html
1. ActionBarSherlockjava
ActionBarSherlock應該算得上是GitHub上最火的Android開源項目了,它是一個獨立的庫,經過一個API和主題,開發者就能夠很方便地使用全部版本的Android動做欄的設計模式。android
對於Android 4.0及更高版本,ActionBarSherlock能夠自動使用本地ActionBar實現,而對於以前沒有ActionBar功能的版本,基於Ice Cream Sandwich的自定義動做欄實現將自動圍繞佈局。可以讓開發者輕鬆開發一款帶動做欄(Action bar)的應用,而且適用於Android 2.x及其以上全部版本。git
詳情請參考:ActionBarSherlockgithub
2. facebook-android-sdkweb
Facebook SDK for Android是一個開源庫,容許開發者將Facebook集成到所開發的Android應用中。spring
若是想要獲取更多關於示例、文檔、將SDK集成到App中、源代碼等信息,可直接登錄Facebook Developers查看。數據庫
3. SlidingMenu(SlidingMenu Demos)編程
SlidingMenu是一個開源的Android庫,可以讓開發者輕鬆開發一款應用,實現相似於Google+、Youtube和Facebook應用中很是流行的滑動式菜單。
使用SlidingMenu的Android應用:
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 八、Bada、BlackBerry、Marmalade、Windows、Linux等多個平臺。支持C++、Lua、JavaScript編程語言。
5. android
GitHub Android App是GitHub開源的Android客戶端,支持Issues、Gists,並集成了新聞Feed,可以讓你及時跟進組織及關注的開發者、庫等。同時,該應用還提供了一個用戶快速訪問你所建立、監控及發佈issue的面板,可查看並將問題加入到收藏夾,可對標籤、里程碑和任務進行過濾配置。
android資源庫包含了GitHub Android App的全部源代碼。
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
該項目用於爲Android提供一個可重用的下拉刷新部件。它最初來源於Johan Nilsson的庫(主要是圖形、字符串和動畫),但這些後來都已被取代。
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
Action bar是一個標識應用程序和用戶位置的窗口功能,而且給用戶提供操做和導航模式。在大多數的狀況下,當開發者須要突出展示用戶行爲或在全局導航的activity中使用action bar,由於action bar可以使應用程序給用戶提供一致的界面,且系統可以很好地根據不一樣的屏幕配置來適應操做欄的外觀。
Action bar的主要目的:
14. android-viewflow
android-viewflow是Android平臺上的一個視圖切換的效果庫,ViewFlow至關於Android UI部件提供水平滾動的ViewGroup,使用Adapter進行條目綁定。
當使用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設備發送推送通知的服務器端庫。
Android Annotations是一個開源的框架,用於加速 Android應用的開發,可讓你把重點放在功能的實現上,簡化了代碼,提高了可維護性。
18. HockeyKit
Hockey是一個iOS Ad-Hoc自動更新框架。蘋果App Store中的全部App均可以使用它,它可以顯著地提升Beta測試的整個過程,分爲兩部分:服務器和客戶端框架。服務器組件須要全部腳本,但在沒有客戶端庫的狀況下,也能夠單獨工做。它提供一個Web接口,Beta測試者可使用它來安裝最新的AdHoc配置文件,也能夠直接在設備上經過Safari安裝最新的Beta版本。
Android上的菜單展現風格各異,其中用得最多且體驗最好的莫過於左右滑動來顯示隱藏的菜單,android-menudrawer是一個滑動式菜單實現,容許用戶在應用當中實現無縫導航。該項目具備多種菜單展現效果,其中最多見的就是經過屏幕邊緣拖動或點擊動做欄的「向上」按鈕顯示。
實現功能:
20. android-flip
Aphid FlipView是一個可以實現Flipboard翻頁效果的UI組件。
DragSortListView(DSLV)是Android ListView的一個擴展,支持拖拽排序和左右滑動刪除功能。重寫了TouchInterceptor(TI)類來提供更加優美的拖拽動畫效果。
DSLV主要特性:
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等主流計算機與移動操做系統,可直接工做在x8六、x6四、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提供支持的領域包括:
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涵蓋的區域包括:
ignition包括三個子項目:
詳情請參考:ignition Sample applications
android_page_curl是一個在Android上使用OpenGL ES實現相似書本翻頁效果的示例程序。(點擊連接查看視頻演示)
31. asmack
說到aSmack,天然要先提提Smack。Smack API是一個完整的實現了XMPP協議的開源API庫,而aSmack則是Smack在Android上的構建版本,於2013年2月初遷移到GitHub上,該資源庫並不包含太多的代碼,只是一個構建環境。開發者能夠利用該API進行基於XMPP協議的即時消息應用程序開發。
詳情請參考:asmack
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
SwipeListView是一個Android List View實現,實現了自定義ListView單元格,可經過滑動來顯示擴展面板。開發者可直接登錄Google Play下載安裝其Demo應用。
42. greenDAO
greenDAO是一個能夠幫助Android開發者快速將Java對象映射到SQLite數據庫的表單中的ORM解決方案,經過使用一個簡單的面向對象API,開發者能夠對Java對象進行存儲、更新、刪除和查詢。
greenDAO的主要設計目標:
詳情請參考:greendao-orm
43. FFMpeg
FFmpeg是一套能夠用來記錄、轉換數字音頻、視頻,並能將其轉化爲流的開源計算機程序。它包括了目前領先的音/視頻編碼庫libavcodec。FFmpeg是在Linux下開發出來的,但它能夠在包括Windows在內的大多數操做系統中編譯。能夠輕易地實現多種視頻格式之間的相互轉換。
而FFmpeg for Android則是可經過Android NDK直接在Android源碼環境下編譯的FFmpeg庫。該庫項目便是FFmpeg for Android的入口,開發者只需直接選擇須要轉換的視頻文件,並設置參數,便可進行轉換,發起人havlenapetr表示在將來將爲其開發Android庫,可以實現自動轉換視頻文件。
44. TweetLanes
Tweet Lanes是一個在Android 4.0及更高版本的Android設備上運行的功能全面的Twitter客戶端(開發者能夠直接登錄Google Play下載該應用)。
該開源項目包含如下全部源代碼:
這是一個簡單的支持多指縮放圖片的Android View類。在Android2.1及其更高版本的設備上,當你想要實現同時進行縮放操做時,能夠將其做爲一個標準的ImageView來使用。
使用過Path的人都應該知道,在Path主界面的左下方有一個很是有意思的菜單。菜單由一個主按鈕組成,當用戶點擊該按鈕時,就會有一連串的按鈕彈出,而Satellite Menu正是該菜單的一個開源版本。
對於Satellite Menu,其項目發起人siyamed表示,這種菜單結構就像是一個星球四周圍繞着許多衛星,而這也就是他爲什麼會以Satellite Menu命名該項目的緣由。
47. VitamioBundle
Vitamio是一款Android平臺上的全能多媒體開發框架,憑藉着其簡潔易用的API接口,Vitamio贏得了全球衆多開發者的青睞。目前,有許多公司的開源Vitamio項目都託管在GitHub上,而Vitamio的核心插件VitamioBundle正是其中之一。
VitamioBundle是一個獨立的Android庫,用於促進多媒體的使用,開發者能夠很方便地將其集成到本身的項目當中。
android-ffmpeg-x264是可以讓提取和構建運行在Android上、使用Android NDK最新的FFmpeg和libx264變得很是簡單的一個存儲庫。不一樣於大多數其餘的NDK FFmpeg構建包,它經過配置構建庫,只需一個很是小的Android.mk文件便可將其包裝進入一個共享庫。目前,該庫項目已再也不更新,但在GitHub上還有着很是多的FFmpeg庫,除了前面的FFmpeg,接下來咱們還會繼續介紹到其餘FFmpeg庫。
49. ArcMenu
ArcMenu是一個相似於iOS版Path 2.0菜單的Android自定義視圖項目,和咱們前面介紹的Satellite Menu項目相似。
對於這個項目,其發起人daCapricorn表示,iOS版Path 2.0上的用戶體驗很是奇妙,但其Android版本卻差太多。所以,他就嘗試着在Android上作出像iOS版本那樣的效果,而事實也的確如此。
50. DataDroid
DataDroid是Android平臺上的一個開發庫,用於簡化Android應用當中的數據管理,基於Android的RESTful封裝發展而來。
詳情請參考:datadroidlib
android-adt-templates是集成了Android開發過程當中使用到的許多經常使用的模板,用來幫助開發者快速構建一些普通的Activity和UI模型。
固然,要想使用這些模板,還必須是Eclipse和ADT 21及其以上版本,此外還需注意的一點就是,ADT模板無論理官方支持庫之外的外部依賴關係。
52. android-ffmpeg
FFmpeg有許多不一樣的庫,也老是會讓人容易混淆,所以該項目發起人n8fr8對android-ffmpeg項目進行了全新的改變,該項目中包含着一個清晰、容易改變、靜態的Android FFmpeg Creator。
該項目是基於Google Android StaggeredGridView進行修改的一個庫項目,容許開發者建立一個相似於Pinterest的交錯排列的GridView。開發者只需在本身的項目中將其做爲一個庫項目添加到workspace中便可直接使用。
54. robospice
RoboSpice是Repo的開源Android庫,可以讓編寫異步網絡請求變得很是簡單。它專門用於網絡請求,經過使用Spring Android或者Google Http Client等擴展模塊可支持REST請求。
若是想要了解更多,不妨點擊連接查看RoboSpice大圖,讓你30秒便可徹底瞭解RoboSpice。若是想要當即使用,則能夠直接進入WiKi或RoboSpice-samples頁面。
55. EventBus
當一個Android應用功能愈來愈多的時候,保證應用的各個部分之間高效的通訊將變得愈來愈困難。如何優雅地解決這個問題?這時候,就須要使用到EventBus。
EventBus是GreenRobot出品的Android系統的一個Event Bus類庫,使用起來和以前咱們所介紹的Square的Otto差很少,都是用來簡化應用組件之間的通訊。
延伸閱讀:EventBus和Otto使用介紹
56. commandergenius
commandergenius是SDL庫的端口,在project/jni/application目錄下還包含有幾個我的遊戲的源代碼或補丁。
57. android-rss
Android RSS是Android平臺上RSS 2.0閱讀軟件的一個輕量級Android庫。
詳情請參考:Code.Google
58. OpenCV-Android
OpenCV-Android是一個將OpenCV移到Android手機平臺的開源項目,該項目使用OpenCV最新的一個分支並利用一個改良過的Android NDK進行構建。
若是想要使用OpenCV-Android,必須先下載並安裝Android SDK 1.6(或其更高版本)和NDK r5,除此以外,還必須具有:
59. RESTProvider
RESTProvider旨在讓訪問REST服務(或任何主要的HTTP調用的網絡數據格式)更容易,並將其緩存到本地的一個SQLite數據庫中,容許脫機使用。可自動解析RESTful API,並將其響應到Android的一個Provider中。
在開源ImageFilterForAndroid中擁有許多豐富的圖片效果,是由來自國內的代震軍發起的一個開源項目。除了Android平臺,還有Windows Phone和iOS移動平臺,三個平臺源碼同步。
ImageFilter庫圖片效果對比:
詳情請參考:代震軍BLOG
Android-Image-Cache是一個可以自動判斷從內存仍是網絡獲取圖片、緩存能夠自動回收、自動判斷如何有效地生成並檢索各類尺寸縮略圖的圖像download-and-cacher。
主要特色以下:
62. FFmpeg-Android
爲Android neon、armv七、vfp、armv6及用於Android的VPlayer構建FFmpeg。
roman10-android-tutorial包含了android tutorial的全部源代碼。
64. tape
Tape是Square推出的Android和Java的一組隊列關係類。
詳情請參考:Square.GitHub
65. AndroidSideMenu
AndroidSideMenu可以讓你垂手可得地建立側滑菜單。須要注意的是,該項目自身並不提供任何建立菜單的工具,所以,開發者能夠自由建立內部菜單。
66. Android-AppMsg
Android-AppMsg是基於Toast消息提示和Cyril Mottier的「The making of Prixing #4: in-layout notifications」而來的一個佈局內通知實現。
開發者能夠直接登錄Google Play下載其示例應用。
67. proxydroid
ProxyDroid是Android上的一個全局代理應用,遵循GPLv3協議,能夠幫助你設置Android設備上的代理。proxydroid項目包含了ProxyDroid全部開放源代碼。
68. bypass
Bypass能夠跳過HTML,直接在Android和iOS上使用Markdown並進行渲染。Markdown是一種輕量級的標記語言,能夠實現文本到HTML的轉換。
69. OnionKit
OnionKit是一個能夠經過提供多種路徑來提升移動應用網絡安全的Android庫項目。
該庫具體提供:
70. android-ffmpeg
若是想要實現Android FFmpeg編譯,必須下載安裝Android NDK,在開始編譯以前,還必須更新FFmpeg庫。
71. AndroidUsbCamera
Android Usb Camera是一款能夠在Linux電腦上將Android手機直接當攝像頭使用的客戶端軟件。先在手機上安裝USB驅動,再安裝該客戶端軟件,而後再在手機上安裝usbwebcam.apk程序,打開USB調試模式並運行usbwebcam,經過USB線將電腦和手機相鏈接便可在PC上直接使用Android手機充當攝像頭。
72. Droidex
Droidex能夠將開發者附加的Android設備的屏幕內容複製到你的開發設備屏幕上。一般,若是你使用DroidEx來進行演示可謂是事半功倍,由於你能夠直接將一臺Android設備與筆記本或投影儀相連,而客戶也能夠經過這些設備來查看Android設備上的內容。
此外,Droidex還能夠用來演示那些不方便經過模擬器演示的內容,好比GPS或加速器。
73. andmake
andmake是Android的CMake工具鏈文件。CMake是一個開源的跨平臺自動化構建系統,能夠編譯源代碼、製做程序庫、產生適配器,還能夠用任意的順序構建可執行文件。
74. ScreenCap
ScreenCap是Android原生自帶的截屏工具,經過調用底層,採起後臺截屏的方式實現截屏。
GitHub上受開發者歡迎的Android開源項目並不只僅止於此,還有不少,而且還有許多同類開源項目,若是你感興趣的話,能夠直接登錄GitHub進行更加深刻的學習瞭解。至此,GitHub上最受歡迎的Android開源項目盤點就所有結束了,接下來,CSDN移動頻道將正式開啓GitHub上最受歡迎的iOS開源項目盤點,敬請期待喲!