直接拿来用!最火的Android开源项目(完结篇)

直接拿来用!最火的Android开源项目(完结篇)

分类:
android 高手进阶教程(100)
摘要:截至目前,在GitHub“最受欢迎的开源项目”系列文章中我们已介绍了40个Android开源项目,对于如此众多的项目,你是Mark、和码友分享经验还是慨叹“活到老要学到老”?今天我们将继续介绍另外34个Android开源项目。

此前,CSDN移动频道推出的GitHub平台上“最受欢迎的开源项目”系列文章引发了许多读者的热议,在“直接拿来用!最火的Android开源项目”系列文章(一)(二)中, 我们也相继盘点了40个GitHub上最受欢迎的Android开源项目。对于GitHub上如此众多的项目,有人不断Mark,有人分享自己的经验,有 人心生“看得眼花缭乱,果然是需要终身学习的时代”的感慨,不管怎么样,如果能让你真的有所学习有所收获,我们的目的也就达到了。


今天我们将继续介绍GitHub上另外34个非常受欢迎的Android开源项目,在这些项目中,你又在用或用过哪些呢?

41. android-swipelistview

SwipeListView是一个Android List View实现,实现了自定义ListView单元格,可通过滑动来显示扩展面板。开发者可直接登陆Google Play下载安装其Demo应用。 


42. greenDAO

greenDAO是一个可以帮助Android开发者快速将Java对象映射到SQLite数据库的表单中的ORM解决方案,通过使用一个简单的面向对象API,开发者可以对Java对象进行存储、更新、删除和查询。


greenDAO的主要设计目标:

 

  • 最大性能(最快的Android ORM)
  • 易于使用API
  • 高度优化
  • 最小内存消耗

 

详情请参考: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下载该应用)。


该开源项目包含以下所有源代码:

 

  • Tweet Lanes客户端应用;
  • 连接Twitter和App.net APIs的SocialNetLib项目;
  • 所有源,尤其是LOGO和Play Store列表;
  • 用于tweetlanes.com的The App Engine项目。

 

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或者Google Http Client等扩展模块可支持REST请求。


如果想要了解更多,不妨点击链接查看RoboSpice大图,让你30秒即可完全了解RoboSpice。如果想要立即使用,则可以直接进入WiKiRoboSpice-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,除此之外,还必须具备:

 

  • Android手机(可能需要与其他手机相连);
  • QuickTime Java库(如果想要使用QTWebcamBroadcaster就必须具备)。

 

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;
  • 基于一个已下载的图像自动生成并缓存多种尺寸图像;
  • 同时提供磁盘缓存和内存缓存;
  • 自动磁盘缓存管理;不需进行设置,但如果需要的话,参数可进行调整;
  • 根据现有设置进行运作;
  • 光标适配器支持一个ImageView中多个图像字段;当是null或为空时自动跳过;
  • 当加载光标时,光标适配器会有一个自动进度提示条。

 

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是基于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库项目。


该库具体提供:

 

  • StrongTrustManager:TLS/SSL证书校验的一个强大实现,任何认证中心都可以进行定制;
  • Proxied Connection Support:通过Apache HTTPClient库的特定配置来支持HTTP和HTTPS流量的HTTP和SOCKS代理连接;
  • OrbotHelper:一个支持Orbot:Tor for 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开源项目盘点,敬请期待哟!


来源:http://blog.csdn.net/xiaanming/article/details/8981135

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/458375.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ABP理论学习之Web API控制器(新增)

返回总目录 本篇目录 介绍AbpApiController基类 本地化审计日志授权工作单元其他介绍 ABP通过Abp.Web.ApiNuget包集成了 ASP.NET Web API控制器。你可以像以往创建Asp.Net Web API控制器那样创建Web API控制器。依赖注入对于有规律的ApiController(其实就是继承自Ab…

C++类构造函数初始化列表及初始化成员变量的误区

构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。例如:[cpp] view plaincopyclass CExample { public: int a; float b; //构造函数初始化列表 CExampl…

将centos7打造成桌面系统

前言 以下所有操作默认在root权限下执行,桌面环境是kde,使用gnome的也可以参考一下。我收集的以下要用到的一些安装包,360网盘http://yunpan.cn/csMhBAp92vTgN 提取码 92e2以下要用的安装软件语法:通过软件源在线安装:…

VC2010打开资源视图时提示“指南必须指定类型”,.rc资源文件损坏(转)

VC: 打开资源视图时提示“指南必须指定类型 ”(Guideline……specify type) ,.rc资源文件损坏 可能是TFS导致的使用记事本打开.rc文件,找到“DESIGNINFO”节,会看到如下的数据: BEGIN , 50 , 13798327 EN…

C++ virtual 析构函数

copy自:http://zxjgoodboy.blog.sohu.com/61482463.html 在此基础上稍作修改C中虚析构函数的作用 我们知道,用C开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: …

(八)企业部分之nginx+tomcat+memcached负载均衡集群搭建

【server1】vim /usr/local/lnmp/tomcat/conf/context.xml<Context>......<Manager className"de.javakaffee.web.msm.MemcachedBackupSessionManager"memcachedNodes"n1:172.25.45.1:11211,n2:172.25.45.2:11211"failoverNodes"n1"req…

泛型算法(二十三)之排列算法

1、is_permutation(ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2)&#xff1a;C11版本&#xff0c;判断两个序列是否为同一元素集的两个排列。 std::vector<int> c1 {1, 2, 3, };std::vector<int> c2 {1, 2, 3, 1, 3};//判断两个序…

C++ 虚函数经典深入解析

from&#xff1a;https://blog.csdn.net/gggg_ggg/article/details/45915505C中的虚函数的作用主要是实现了多态的机制。 关于多态&#xff0c;简而言之就是用父类型别的指针指向其子类的实例&#xff0c;然后通过父类的指针调用实际子类的成员函数。 这种技术可以让父类的指针…

21OGNL与ValueStack(VS)-静态方法访问

转自&#xff1a;https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 在LoginAction中增加如下方法&#xff1a;public static String getSta() { return "这是LoginAction中的静态方法"; } 然后在loginSuc.jsp中增加如下代码&#xff1a; 调用Action中的静…

win7通过easyBCD引导ubuntu

我电脑配置了固态和传统双硬盘&#xff0c;SSD已经装了win7&#xff0c;然后在传统硬盘上安装ubuntu&#xff0c;结果安装完成后看不到ubuntu的入口。因为跟win7不是装在一个驱动设备上&#xff0c;所以使用easyBCD的Linux&#xff0f;BCD选项也无法正确引导。最后通过easyBCD的…

深入理解C++中的explicit关键字

深入理解C中的explicit关键字kezunhaigmail.com http://blog.csdn.net/kezunhaiC中的explicit关键字只能用于修饰只有一个参数的构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的&#xff0c; 跟它相对应的另一个关键字是implicit, 意思是隐藏的,构造函数默认情况下即声…

JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结(转)

hibernate以及mybatis都有过学习&#xff0c;在java面试中也被提及问道过&#xff0c;在项目实践中也应用过&#xff0c;现在对hibernate和mybatis做一下对比&#xff0c;便于大家更好的理解和学习&#xff0c;使自己在做项目中更加得心应手。 第一方面&#xff1a;开发速度的对…

Caffe源码解析4: Data_layer

转载请注明出处&#xff0c;楼燚(y)航的blog&#xff0c;http://home.cnblogs.com/louyihang-loves-baiyan/ data_layer应该是网络的最底层&#xff0c;主要是将数据送给blob进入到net中&#xff0c;在data_layer中存在多个跟data_layer相关的类 BaseDataLayerBasePrefetchingD…

理解C++中拷贝构造函数

拷贝构造函数的功能是用一个已有的对象来初始化一个被创建的同样对象&#xff0c;是一种特殊的构造函数&#xff0c;具有一般构造函数的所有特性&#xff0c;当创建一个新对象的时候系统会自动调用它&#xff1b;其形参是本类对象的引用&#xff0c;它的特殊功能是将参数代表的…

IDEA mybatis-generator-maven-plugin 插件的使用

2019独角兽企业重金招聘Python工程师标准>>> pom.xml中添加插件 <plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.2</version><configuratio…

python优秀网友学习笔记推荐

AstralWindMr.Seven 转载于:https://www.cnblogs.com/migongci0412/p/5154892.html

深入理解CRITICAL_SECTION

摘要临界区是一种防止多个线程同时执行一个特定代码节的机制&#xff0c;这一主题并没有引起太多关注&#xff0c;因而人们未能对其深刻理解。在需要跟踪代码中的多线程处理的性能时&#xff0c;对 Windows 中临界区的深刻理解非常有用。本文深入研究临界区的原理&#xff0c;以…

webpack进阶之插件篇

上一篇博客讲解了webpack环境的基本&#xff0c;这一篇讲解一些更深入的内容和开发技巧。基本环境搭建就不展开讲了 一、插件篇 1. 自动补全css3前缀 autoprefixer 官方是这样说的&#xff1a;Parse CSS and add vendor prefixes to CSS rules using values from the Can I Use…

QT:QObject 简单介绍

QObject 是所有Qt对象的基类。QObject 是Qt模块的核心。它的最主要特征是关于对象间无缝通信的机制&#xff1a;信号与槽。 使用connect()建立信号到槽的连接&#xff0c;使用disconnect()销毁连接&#xff0c;使用blockSignals()暂时阻塞信号以避免无限通知循环&#xff0c;使…

利用malloc定义数组

使用malloc方法时&#xff0c;应导入文件 #include<malloc.h> 1.利用malloc定义一维数组 int *num (int *)malloc(sizeof(int)*8); // 定义一个一维数组有8个元素&#xff0c;等价于 int num[8]; 2.利用malloc定义二维数组 int **num &#xff08; int **&#xff09…