热门Android开源项目

Posted by baicai on April 6, 2016

GitHub在中国的火爆程度无需多言,越来越多的开源项目迁移到GitHub平台上。今天给大家盘点一下Android开发领域出现的热门开源项目。数据来自于GitHub搜索。

1. fresco

今年的冠军是同样来自Facebook的图片工具fresco, 与传统的图片缓存工具相比,其强大的内存管理特性一度被认为是黑科技,使得它一经问世就备受瞩目,也因此荣登2015年十佳Android开源新项目榜首,恭喜恭喜。

GitHub: https://github.com/facebook/fresco

2. leakcanary

OutOfMemoryError?是时候跟它说再见了,leakcanary的横空出世,让令人头疼的OOM查找变得如此轻松,只需要简单集成,就能帮你找出内存泄漏,还各种贴心提醒,真的是超赞。不过它也不是万能的,有心学好Android开发的同学,内存问题排查的常规姿势也是必修课之一。

GitHub: https://github.com/square/leakcanary

3. HomeMirror

科幻电影里经常的出现的场景,如今已成现实,你家里的镜子也能显示日历天气了,科技进步之快超出我们的想象,无怪乎它能在2015年众多优秀开源项目中杀进前三,想知道怎么实现的?赶快去看看吧。

GitHub: https://github.com/HannahMitt/HomeMirror

4. android-UniversalMusicPlayer

这个开源项目展示了如何实现一个横跨各种Android平台的音乐播放器,包括手机,平板,汽车,手表,电视等。

GitHub: https://github.com/googlesamples/android-UniversalMusicPlayer

5. cheesesquare

cheesesquare是Android开发大神chrisbanes所作,用以展示全新的Android Desgin Support Library,其实就是Android帮我们新造的一些轮子,主要演示以下轮子的使用技巧:

  • Collapsing Toolbar
  • FloatingActionButton
  • View anchoring
  • NavigationView
  • Snackbar

GitHub: https://github.com/chrisbanes/cheesesquare

6. plaid

Plaid是一款遵循Material风格设计的Android App、 聚合了主流创意&设计相关资讯的新闻应用,想知道一款完整的Material Design的App应该怎么做?就看看它吧。

GitHub: https://github.com/nickbutcher/plaid

7. stetho

stetho是开源大户Facebook提供的一款Android调试神器,可以在Chrome上像调试Web App一样,调试Android Native App, 听起来就很酷,但感觉只是刚发布时红过一阵子。

GitHub: https://github.com/facebook/stetho

8. MaterialViewPager

2015年Material真是火遍全球,排名第8位的同样是传统ViewPager控件的Material Design版本。

GitHub: https://github.com/florent37/MaterialViewPager

9. MaterialDrawer

提到Android Design, 大家首先会想起经典的侧边栏,Android提供了侧边栏的标准实现Drawer, 而这个开源项目,则提供了各种Material风格的侧边栏,想要原汁原味的高大上Android Design?赶紧试试它吧。

GitHub: https://github.com/mikepenz/MaterialDrawer

10. Material-Animations

它是一款实现了各种Material风格动画效果的开源项目,包括Activity之间的跳转动画,View的动画等。

GitHub: https://github.com/lgvalle/Material-Animations

1.ActionBarSherlock

ActionBarSherlock应该算得上是GitHub上最火的Android开源项目了,它是一个独立的库,通过一个API和主题,开发者就可以很方便地使用所有版本的Android动作栏的设计模式。

<img src=”http://static.open-open.com/lib/uploadImg/20131229/20131229193938_750.jpg” alt=”GitHub上最火的40个Android开源项目(一)" width=”400” height=”297” />

对于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应用中。

<img src=”http://static.open-open.com/lib/uploadImg/20131229/20131229193938_183.jpg” alt=”GitHub上最火的40个Android开源项目(一)" width=”400” height=”211” />

如果想要获取更多关于示例、文档、将SDK集成到App中、源代码等信息,可直接登陆<a href=”https://developers.facebook.com/android/”>Facebook Developers</a>查看。

3.SlidingMenu(<a href=”https://play.google.com/store/apps/details?id=com.slidingmenu.example”>SlidingMenu Demos</a>)</strong>

SlidingMenu是一个开源的Android库,能够让开发者轻松开发一款应用,实现类似于Google+、Youtube和Facebook应用中非常流行的滑动式菜单。

<img src=”http://static.open-open.com/lib/uploadImg/20131229/20131229193938_977.jpg” alt=”GitHub上最火的40个Android开源项目(一)" width=”169” height=”300” /> <img src=”http://static.open-open.com/lib/uploadImg/20131229/20131229193938_553.jpg” alt=”GitHub上最火的40个Android开源项目(一)" width=”169” height=”300” /> <img src=”http://static.open-open.com/lib/uploadImg/20131229/20131229193938_958.jpg” alt=”GitHub上最火的40个Android开源项目(一)" width=”169” height=”300” />

使用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渲染。

<img src=”http://static.open-open.com/lib/uploadImg/20131229/20131229193938_420.jpg” alt=”GitHub上最火的40个Android开源项目(一)" width=”217” height=”300” />

支持iOS、Android、Windows Phone 8、Bada、BlackBerry、Marmalade、Windows、Linux等多个平台。支持C++、Lua、JavaScript编程语言。

5. android GitHub Android App是 GitHub开源的Android客户端,支持Issues、Gists,并集成了新闻Feed,能够让你及时跟进组织及关注的开发者、库等。同时,该应 用还提供了一个用户快速访问你所创建、监控及发布issue的面板,可查看并将问题加入到收藏夹,可对标签、里程碑和任务进行过滤配置。

<img src=”http://static.open-open.com/lib/uploadImg/20131229/20131229193938_736.jpg” alt=”GitHub上最火的40个Android开源项目(一)" width=”400” height=”196” />

android资源库包含了GitHub Android App的所有源代码。

6.Android-ViewPagerIndicator

ViewPager指针项目,在使用ViewPager的时候能够指示ViewPager所在的位置,就像Google Play中切换的效果一样,还能使用在应用初始化的介绍页面。

<img src=”http://static.open-open.com/lib/uploadImg/20131229/20131229193938_698.jpg” alt=”GitHub上最火的40个Android开源项目(一)" width=”400” height=”282” />

兼容Android支持库的ViewPager及ActionBarSherlock,最初是基于Patrik Åkerfeldt的ViewFlow,开发者可以直接登陆<a href=”https://play.google.com/store/apps/details?id=com.viewpagerindicator.sample”>Google Play</a>下载该项目的演示应用。

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的开发正在进行中。

<img src=”http://static.open-open.com/lib/uploadImg/20131229/20131229193939_822.jpg” alt=”GitHub上最火的40个Android开源项目(一)" width=”300” height=”300” />

详情请参考:MonoGame

8.Android-PullToRefresh

该项目用于为Android提供一个可重用的下拉刷新部件。它最初来源于Johan Nilsson的库(主要是图形、字符串和动画),但这些后来都已被取代。

<img src=”http://static.open-open.com/lib/uploadImg/20131229/20131229193939_917.jpg” alt=”GitHub上最火的40个Android开源项目(一)" width=”400” height=”204” />

9. android-async-http

android-async-http是Android上的一个异步、基于回调的HTTP客户端开发包,建立在Apache的HttpClient库上。

10.Android-Universal-Image-Loader

Android上最让人头疼的莫过于从网络获取图片、显示、回收,任何一个环节有问题都可能直接OOM,这个项目或许能帮到你。

<img src=”http://static.open-open.com/lib/uploadImg/20131229/20131229193939_698.jpg” alt=”GitHub上最火的40个Android开源项目(一)" width=”400” height=”262” />

Universal Image Loader for Android的目的是为了实现异步的网络图片加载、缓存及显示,支持多线程异步加载。它最初来源于Fedor Vlasov的项目</strong></a>,且自此之后,经过大规模的重构和改进。

11. GreenDroid

GreenDroid最初是由Cyril Mottier发起,是一个Android的UI开发类库,能够让UI开发更加简便,并且在应用中始终保持一致。

<img src=”http://static.open-open.com/lib/uploadImg/20131229/20131229193939_630.jpg” alt=”GitHub上最火的40个Android开源项目(一)" width=”400” height=”151” />

详情请参考:Cyril Mottier’s Blog

12. Anki-Android

AnkiDroid是一个免费、开源的Android的闪存应用,可直接从Google Play进行下载。

<img src=”http://static.open-open.com/lib/uploadImg/20131229/20131229193939_341.jpg” alt=”GitHub上最火的40个Android开源项目(一)" width=”239” height=”300” />

详情请参考:ankidroid

13.android-actionbar

Action bar是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式。在大多数的情况下,当开发者需要突出展现用户行为或在全局导航的activity中使用action bar,因为action bar能够使应用程序给用户提供一致的界面,且系统能够很好地根据不同的屏幕配置来适应操作栏的外观。

<img src=”http://static.open-open.com/lib/uploadImg/20131229/20131229193939_843.jpg” alt=”GitHub上最火的40个Android开源项目(一)" width=”321” height=”45” />

Action bar的主要目的:

  • 提供一个用于识别应用程序的标示和用户的位置的专用空间。</li>
  • 在不同的应用程序之间提供一致的导航和视觉体验。</li>
  • 突出Activity的关键操作,并且在可预见的方法内给用户提供快捷的访问。</li> </ul> 14.android-viewflow android-viewflow是Android平台上的一个视图切换的效果库,ViewFlow相当于Android UI部件提供水平滚动的<a href="http://developer.android.com/reference/android/view/ViewGroup.html">ViewGroup</a>,使用<a href="http://developer.android.com/reference/android/widget/Adapter.html">Adapter</a>进行条目绑定。 <img src="http://static.open-open.com/lib/uploadImg/20131229/20131229193939_101.jpg" alt="GitHub上最火的40个Android开源项目(一)" width="180" height="300" /> <img src="http://static.open-open.com/lib/uploadImg/20131229/20131229193939_647.jpg" alt="GitHub上最火的40个Android开源项目(一)" width="180" height="300" /> 15.android-mapviewballoons 当使用Android地图外部库(com.google.android.maps)时,android-mapviewballoons会提供一个简单的方式来对地图覆盖进行标注,就是一个简单的信息气泡。 <img src="http://static.open-open.com/lib/uploadImg/20131229/20131229193939_8.jpg" alt="GitHub上最火的40个Android开源项目(一)" width="236" height="300" /> 它由BalloonOverlayView组成,是一个代表显示你的MapView及BalloonItemizedOverlay的气泡的视图,BalloonItemizedOverlay是ItemizedOverlay的一个抽象扩展。 16.PushSharp 一个向iOS(iPhone/iPad APNS)、Android(C2DM和GCM)、Windows Phone和Windows 8设备发送推送通知的服务器端库。 <img src="http://static.open-open.com/lib/uploadImg/20131229/20131229193939_788.jpg" alt="GitHub上最火的40个Android开源项目(一)" width="390" height="300" /> 17.androidannotations Android Annotations是一个开源的框架,用于加速 Android应用的开发,可以让你把重点放在功能的实现上,简化了代码,提升了可维护性。 18.HockeyKit Hockey是一个iOS Ad-Hoc自动更新框架。苹果App Store中的所有App都可以使用它,它能够显著地提高Beta测试的整个过程,分为两部分:服务器和客户端框架。服务器组件需要所有脚本,但在没有客 户端库的情况下,也可以单独工作。它提供一个Web接口,Beta测试者可以使用它来安装最新的AdHoc配置文件,也可以直接在设备上通过Safari 安装最新的Beta版本。 <img src="http://static.open-open.com/lib/uploadImg/20131229/20131229193939_195.jpg" alt="GitHub上最火的40个Android开源项目(一)" width="202" height="300" />
    • 只需在服务器上安装一次服务端,就可以处理包标识符不同的多个应用程序(有开发者强烈建议对Debug、AdHoc Beta和AppStore发布版使用不同的包标识符)。</li>
    • 默认当App启动或唤醒时,客户端会从服务器检测更新,用户可以在设置对话框中进行修改:一天一次或手动检查更新。</li>
    • 除了支持iOS,HokeyKit也支持Android平台,不过Android版还处在Alpha阶段,支持OTA及应用内更新。</li>
    • 为HockeyKit用户提供服务器托管服务。</li> </ul> 19.android-menudrawer Android上的菜单展示风格各异,其中用得最多且体验最好的莫过于左右滑动来显示隐藏的菜单,android-menudrawer是一个滑动 式菜单实现,允许用户在应用当中实现无缝导航。该项目具有多种菜单展示效果,其中最常见的就是通过屏幕边缘拖动或点击动作栏的“向上”按钮显示。 <img src="http://static.open-open.com/lib/uploadImg/20131229/20131229193940_671.jpg" alt="GitHub上最火的40个Android开源项目(一)" width="169" height="300" /> <img src="http://static.open-open.com/lib/uploadImg/20131229/20131229193940_413.jpg" alt="GitHub上最火的40个Android开源项目(一)" width="169" height="300" /> 实现功能:
      • 菜单可以沿着四个边放置。</li>
      • 支持附加一个始终可见、不可拖动的菜单。</li>
      • 菜单的内容和整个窗口都可以隐藏。</li>
      • 可用于XML布局。</li>
      • 显示当前可见屏幕的指示器。</li> </ul> 20. android-flip Aphid FlipView是一个能够实现Flipboard翻页效果的UI组件。 <img src="http://static.open-open.com/lib/uploadImg/20131229/20131229193940_802.jpg" alt="GitHub上最火的40个Android开源项目(一)" width="240" height="438" /> 21.drag-sort-listview DragSortListView(DSLV)是Android ListView的一个扩展,支持拖拽排序和左右滑动删除功能。重写了TouchInterceptor(TI)类来提供更加优美的拖拽动画效果。 GitHub上最火的40个Android开源项目(二) GitHub上最火的40个Android开源项目(二) DSLV主要特性:
        • 完美的拖拽支持;
        • 在拖动时提供更平滑的滚动列表滚动;</li>
        • 支持每个ListItem高度的多样性</li>
        • 公开startDrag()和stopDrag()方法;</li>
        • 有公开的接口可以自定义拖动的View。</li> </ul> DragSortListView适用于带有任何优先级的列表:收藏夹、播放列表及清单等,算得上是目前Android开源实现拖动排序操作最完美的方案。 22. c-geo-opensource c:geo是Android设备上一个简单而又强大的非官方地理寻宝客户端。与其他类似应用不同的是,c:geo不需要Web浏览器,也不需要文件输出。你可以在毫无准备的情况下,毫无后顾之忧地带上你的智能手机去进行地理寻宝。当然,你也不需要付钱,因为它是免费的。 GitHub上最火的40个Android开源项目(二) 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的入口。 GitHub上最火的40个Android开源项目(二) 该项目包含两个工程,一个是Library,即为动画效果的实现库,另一个则是Sample,是对如何使用该API的演示。开发者可以直接登陆Google Play下载安装Nine Old Androids Sample,查看演示。 详情请参考:Nine Old Androids 24. ppsspp PPSSPP是由GC/Wii模拟器<a href="http://dolphin-emu.org/">Dolphin</a>联 合创始人之一Henrik Rydgård开发的一款免费的跨平台开源模拟器,支持Windows、Linux、Mac、Android、iOS、BlackBerry 10等主流计算机与移动操作系统,可直接工作在x86、x64、ARM等CPU平台上,以GNU GPLv2许可协议发布,主要使用C++编写以提高效率和可移植性。 GitHub上最火的40个Android开源项目(二) 只要支持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应用的生命周期帮助</li>
          • 支持处理Intents和diagnostics类</li>
          • 后台任务支持
          • HTTP消息处理
          • 对象、HTTP响应及远程图像高速缓存</li>
          • 定制各种Adapter及View
          • </ul> GitHub上最火的40个Android开源项目(二) Droid-Fu最大的优势在于它的应用生命周期帮助类,如果你正在开发一款Android应用,而它的主要任务是运行后台任务,比如从Web上抓取数据,那么,你一定会使用到Droid-Fu,不过,目前该项目在GitHub上已经停止更新维护。 详情请参考:droid-fu 27. TextSecure TextSecure是Whisper Systems团队开发的一个Android上的加密信息客户端,旨在增强用户和企业通信的安全性,其源代码于2011年被Twitter发布在GitHub开源数据库中。 GitHub上最火的40个Android开源项目(二) 该软件允许用户将在Android设备上所有发送和接收的短信内容进行加密,还可以将加密信息发送给另一个TextSecure用户。 28. XobotOS XobotOS是Xamarin的一个研究项目,用于将Android 4.0从Java/Dalvik移植到C#,并对移植后的性能及内存占用情况进行检测。 GitHub上最火的40个Android开源项目(二) 29. ignition 在编写Android应用时,通过提供即用组件和包含许多样板文件的实用类,ignition可以让你的Android应用快速起步。ignition涵盖的区域包括:
            • Widget、Adapter、Dialog等UI组件;</li>
            • 允许编写简单却强大的网络代码的HTTP Wrapper库;
            • 加载远程Web图像并进行缓存的类;
            • 简单但有效的缓存框架(将对所有对象树做出响应的HTTP缓存到内存或硬盘中);</li>
            • Intents、diagnostics等几个能让API级别更容易向后兼容的帮助类;
            • 更友好、更强大的AsyncTask实现。</li> </ul> GitHub上最火的40个Android开源项目(二) ignition包括三个子项目:
              • ignition-core——是一个可以直接编译到App中的Android库项目。</li>
              • ignition-support——一个标准的Java库项目,被部署为一个普通的JAR,包含了大部分实用工具类。开发者可以独立使用该工程的核心模块。</li>
              • ignition-location——一个可以直接编译到应用程序中的Android AspectJ库项目。能够让定位应用在不需要Activity位置更新处理的情况下获取到最新的位置信息。</li> </ul> 详情请参考:ignition Sample applications 30.android_page_curl android_page_curl是一个在Android上使用OpenGL ES实现类似书本翻页效果的示例程序。(点击链接查看视频演示GitHub上最火的40个Android开源项目(二) 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的所有规范,并提供更高级的类来进行使用。 GitHub上最火的40个Android开源项目(二) Google于2012年底正式发布了v3版Android In-app Billing,但截至目前,GitHub上的Android Billing Library还只能支持到v2版,据悉Google将于2013年初对它进行更新。 详情请参考:Google Play In-app Billing 33. Crouton Crouton是Android上的一个可以让开发者对环境中的Toast进行替换的类,以一个应用程序窗口的方式显示,而其显示位置则由开发者自己决定。 GitHub上最火的40个Android开源项目(二) 开发者可以直接登陆Google Play下载安装Crouton Demo,查看应用演示。 34. cwac-endless CommonsWare Android Components(CWAC)是一个开源的Android组件库,用来解决Android开发中各个方面的常见问题,每个 CWAC组件打包成一个独立的jar文件,其中就包含cwac-endless。 GitHub上最火的40个Android开源项目(二) cwac-endless提供一个EndlessAdapter,这是一个自动分页的List,当用户浏览到List最后一行时自动请求新的数据。 详情请参考:Commons Ware 35. DiskLruCache 在Android应用开发中,为了提高UI的流畅性、响应速度,提供更高的用户体验,开发者常常会绞尽脑汁地思考如何实现高效加载图片,而 DiskLruCache实现正是开发者常用的图片缓存技术之一。Disk LRU Cache,顾名思义,硬件缓存,就是一个在文件系统中使用有限空间进行高速缓存。每个缓存项都有一个字符串键和一个固定大小的值。 GitHub上最火的40个Android开源项目(二) 点击链接下载该库项目。 36. Android-SlideExpandableListView 如果你对Android提供的Android ExpandableListView并不满意,一心想要实现诸如Spotify应用那般的效果,那么SlideExpandableListView绝 对是你最好的选择。该库允许你自定义每个列表项目中的ListView,一旦用户点击某个按钮,即可实现该列表项目区域滑动。 GitHub上最火的40个Android开源项目(二) 37. gauges-android Gaug.es for Android是由gaug.es推出的一款在Android设备上对网站流量数据进行实时统计的应用。gauges-android包含了该应用的源代码,开发者可以直接登陆<a href="https://play.google.com/store/apps/details?id=com.github.mobile.gauges">Google Play</a>下载安装该应用。 GitHub上最火的40个Android开源项目(二) 38. acra ACRA是一个能够让Android应用自动将崩溃报告以谷歌文档电子表的形式进行发送的库,旨在当应用发生崩溃或出现错误行为时,开发者可以获取到相关数据。 GitHub上最火的40个Android开源项目(二) 39. roboguice RoboGuice是Android平台上基于Google Guice开发的一个库,可以大大简化Android应用开发的代码及一些繁琐重复的代码。给Android带来了简单、易用的依赖注入,如果你使用过 Spring或Guice的话,你就会知道这种编程方式是多么的便捷。 GitHub上最火的40个Android开源项目(二) 40. otto Otto是由Square发布的一个着重于Android支持的基于Guava的强大的事件总线,在对应用程序不同部分进行解耦之后,仍然允许它们进行有效的沟通。 GitHub上最火的40个Android开源项目(二) 详情请参考:Otto 41.android-swipelistview SwipeListView是一个Android List View实现,实现了自定义ListView单元格,可通过滑动来显示扩展面板。开发者可直接登陆Google Play下载安装其<a href="https://play.google.com/store/apps/details?id=com.fortysevendeg.android.swipelistview">Demo应用</a>。 42. greenDAO greenDAO是一个可以帮助Android开发者快速将Java对象映射到SQLite数据库的表单中的ORM解决方案,通过使用一个简单的面向对象API,开发者可以对Java对象进行存储、更新、删除和查询。 greenDAO的主要设计目标:
                • 最大性能(最快的Android ORM)</li>
                • 易于使用API
                • 高度优化
                • 最小内存消耗</li> </ul> 详情请参考: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是一个在Android4.0及更高版本的Android设备上运行的功能全面的Twitter客户端(开发者可以直接登陆<a href="https://play.google.com/store/apps/details?id=com.tweetlanes.android">Google Play</a>下载该应用)。 该开源项目包含以下所有源代码:
                  • Tweet Lanes客户端应用;
                  • 连接Twitter和App.net APIs的SocialNetLib项目;</li>
                  • 所有源,尤其是LOGO和Play Store列表;</li>
                  • 用于tweetlanes.com的The App Engine项目。</li> </ul> 45.gesture-imageview 这是一个简单的支持多指缩放图片的Android View类。在Android2.1及其更高版本的设备上,当你想要实现同时进行缩放操作时,可以将其作为一个标准的ImageView来使用。 46.android-satellite-menu 使用过Path的人都应该知道,在Path主界面的左下方有一个非常有意思的菜单。菜单由一个主按钮组成,当用户点击该按钮时,就会有一连串的按钮弹出,而Satellite Menu正是该菜单的一个开源版本。 对于Satellite Menu,其项目发起人siyamed表示,这种菜单结构就像是一个星球四周围绕着许多卫星,而这也就是他为何会以Satellite Menu命名该项目的原因。 47. VitamioBundle Vitamio是一款Android平台上的全能多媒体开发框架,凭借着其简洁易用的API接口,Vitamio赢得了全球众多开发者的青睐。目 前,有许多公司的开源Vitamio项目都托管在GitHub上,而Vitamio的核心插件VitamioBundle正是其中之一。 VitamioBundle是一个独立的Android库,用于促进多媒体的使用,开发者可以很方便地将其集成到自己的项目当中。 48.android-ffmpeg-x264 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 51.android-adt-templates android-adt-templates是集成了Android开发过程中使用到的许多常用的模板,用来帮助开发者快速构建一些普通的Activity和UI模型。 当然,要想使用这些模板,还必须是Eclipse和ADT 21及其以上版本,此外还需注意的一点就是,ADT模板不管理官方支持库以外的外部依赖关系。 52.android-ffmpeg FFmpeg有许多不同的库,也总是会让人容易混淆,因此该项目发起人n8fr8对android-ffmpeg项目进行了全新的改变,该项目中包含着一个清晰、容易改变、静态的Android FFmpeg Creator。 53. StaggeredGridView 该项目是基于Google Android StaggeredGridView进行修改的一个库项目,允许开发者创建一个类似于Pinterest的交错排列的GridView。开发者只需在自己的项目中将其作为一个库项目添加到workspace中即可直接使用。 54. robospice RoboSpice是Repo的开源Android库,能够让编写异步网络请求变得非常简单。它专门用于网络请求,通过使用Spring Android或者<a href="https://code.google.com/p/google-http-java-client/">Google Http Client</a>等扩展模块可支持REST请求。 如果想要了解更多,不妨点击链接查看<a href="https://raw.github.com/octo-online/robospice/master/gfx/RoboSpice-InfoGraphics.png">RoboSpice大图</a>,让你30秒即可完全了解RoboSpice。如果想要立即使用,则可以直接进入<a href="https://github.com/octo-online/robospice/wiki">WiKi</a>或<a href="https://github.com/octo-online/RoboSpice-samples">RoboSpice-samples</a>页面。 55. EventBus 当一个Android应用功能越来越多的时候,保证应用的各个部分之间高效的通信将变得越来越困难。如何优雅地解决这个问题?这时候,就需要使用到EventBus。 EventBus是GreenRobot出品的Android系统的一个Event Bus类库,使用起来和之前我们所介绍的Square的Otto差不多,都是用来简化应用组件之间的通信。 延伸阅读:<a href="http://blog.chengyunfeng.com/?tag=event-bus">EventBus和Otto使用介绍</a> 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,除此之外,还必须具备:
                    • Android手机(可能需要与其他手机相连);
                    • QuickTime Java库(如果想要使用QTWebcamBroadcaster就必须具备)。</li> </ul> 59. RESTProvider RESTProvider旨在让访问REST服务(或任何主要的HTTP调用的网络数据格式)更容易,并将其缓存到本地的一个SQLite数据库中,允许脱机使用。可自动解析RESTful API,并将其响应到Android的一个Provider中。 60. ImageFilterForAndroid 在开源ImageFilterForAndroid中拥有许多丰富的图片效果,是由来自国内的代震军发起的一个开源项目。除了Android平台,还有Windows Phone和iOS移动平台,三个平台源码同步。 ImageFilter库图片效果对比: 详情请参考:代震军BLOG 61. Android-Image-Cache Android-Image-Cache是一个能够自动判断从内存还是网络获取图片、缓存可以自动回收、自动判断如何有效地生成并检索各种尺寸缩略图的图像download-and-cacher。 主要特点如下:
                      • 只需提供一个适配器即可从光标读取本地、网络URL;</li>
                      • 基于一个已下载的图像自动生成并缓存多种尺寸图像;</li>
                      • 同时提供磁盘缓存和内存缓存;
                      • 自动磁盘缓存管理;不需进行设置,但如果需要的话,参数可进行调整;
                      • 根据现有设置进行运作;</li>
                      • 光标适配器支持一个ImageView中多个图像字段;当是null或为空时自动跳过;</li>
                      • 当加载光标时,光标适配器会有一个自动进度提示条。</li> </ul> 62. FFmpeg-Android 为Android neon、armv7、vfp、armv6及用于Android的VPlayer构建FFmpeg。 63. roman10-android-tutorial roman10-android-tutorial包含了android tutorial的所有源代码。 64. tape Tape是Square推出的Android和Java的一组队列关系类。 详情请参考:**Square.GitHub** 65. AndroidSideMenu AndroidSideMenu能够让你轻而易举地创建侧滑菜单。需要注意的是,该项目自身并不提供任何创建菜单的工具,因此,开发者可以自由创建内部菜单。 66. Android-AppMsg Android-AppMsg是基于<a href="http://developer.android.com/reference/android/widget/Toast.html">Toast</a>消息提示和Cyril Mottier的“<a href="http://android.cyrilmottier.com/?p=773">The making of Prixing #4: in-layout notifications</a>”而来的一个布局内通知实现。 开发者可以直接登陆Google Play下载其<a href="http://play.google.com/store/apps/details?id=com.devspark.appmsg.sample">示例应用</a>。 67. proxydroid ProxyDroid是Android上的一个全局代理应用,遵循GPLv3协议,可以帮助你设置Android设备上的代理。proxydroid项目包含了ProxyDroid所有开放源代码。 68. bypass Bypass可以跳过HTML,直接在Android和iOS上使用Markdown并进行渲染。Markdown是一种轻量级的标记语言,可以实现文本到HTML的转换。 69. OnionKit OnionKit是一个可以通过提供多种路径来提高移动应用网络安全的Android库项目。 该库具体提供:
                        • StrongTrustManager:TLS/SSL证书校验的一个强大实现,任何认证中心都可以进行定制;
                        • Proxied Connection Support:通过Apache HTTPClient库的特定配置来支持HTTP和HTTPS流量的HTTP和SOCKS代理连接;</li>
                        • OrbotHelper:一个支持Orbot:Tor for Android应用集成的工具类。</li> </ul> 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工具链文件。<a href="http://zh.wikipedia.org/wiki/CMake">CMake</a>是一个开源的跨平台自动化构建系统,可以编译源代码、制作程序库、产生适配器,还可以用任意的顺序构建可执行文件。 74. ScreenCap ScreenCap是Android原生自带的截屏工具,通过调用底层,采取后台截屏的方式实现截屏。 GitHub上受开发者欢迎的Android开源项目并不仅仅止于此,还有很多,并且还有许多同类开源项目,如果你感兴趣的话,可以直接登陆<a href="https://github.com/">GitHub</a>进行更加深入的学习了解。至此,GitHub上最受欢迎的Android开源项目盘点就全部结束了。