关于开源,关于 GitHub, 关于 Android

1. 开源发展

首先看两张图



第一张是 2007-2013 年全球智能手机增长曲线,第二张是 2008-2013 年​ GitHub 上开源项目总数的增长曲线,大家注意看下 Android 设备增长曲线和 GitHub 增长曲线,我不确定两者是不是有一定联系,但我经常告诉 Andorid 开发的小伙伴们他们比 iOS 开发幸福,因为 Android 开源,因为 Java 开源。

2. 怎么用开源项目

关于这个问题年中我吐槽过,如下


所以针对 Android 我们拉了个协作的开源项目,先从原理分析开始

不出意外元旦后这个项目就有第一期的产出,感谢几十位辛苦优秀的小伙伴们,你们是最棒的。

那么说下我对开源库选择的考虑

(1) 开源协议

谨慎使用 GPL 协议,GPL 协议规定使用了该开源库的代码也必须遵循 GPL 协议,即开源和免费。更多请大家自己 Google “gpl bsd apache mit license”。

(2) 原理

必须能驾驭该库,这就要求必须了解该库的实现原理,关于这点请任何人不要跟我争辩。

(3) 功能、文档、稳定性、扩展性

功能是否能满足业务需求,是否足够稳定(稳定性测试)、文档是否齐全、扩展性是否足够。
性能要求较高库需要性能对比测试。

(4) 源码修改

a. 个性化业务带来的修改
请尽量使用 Wrap 方式,而不要直接改源码。实在绕不开,请在 Git 上打上 Tag,并注明详细原因。

b. 通用需求的修改
请按源项目要求修改代码,并提交 PR,反馈回开源社区,请求合并进主分支。
源代码修改原则只有一个不要让你 clone 的副本脱离开源广袤的大陆,变成孤岛。

(5) 其他

GitHub 现在四五百 star 的开源项目很水的多的是,对于一个项目大家可以更多关注 contributors、commits、Pull Requests、Issues、Fork 个数。

3. 一个开源项目应该包含哪些内容

(1) 合适的文件和代码

合适的文件指的是要有自己的 gitignore,合适的代码是指代码要符合代码规范(如很简单的四空格缩进很多 Java 开源项目都做不到)。

(2) README.md

README.md 是一个项目必不可少的,其中要求示例、文档、引用方式、开源的 Licence 齐全。对 Android 来说示例可能包括 Demo APK、截图。引用方式可以是 Maven 和 Gradle 引用方式。

(3) 联系方式

总有很急的 Bug 需要 GitHub Issue 外的即时沟通。

(4) 开源协议和精神

声明开源协议。同时请大家遵守开源精神,遵守其他人的劳动成果,如果有借鉴或是部分拷贝其他开源库,请在明显地方声明感谢!
欢迎大家讨论吐槽,一起把开源做的更好。

时间: 2024-12-22 14:35:08

关于开源,关于 GitHub, 关于 Android的相关文章

gitHub上边android studio开发的开源项目转为Eclipse中的项目,个人调试过的可以使用

github一个收集了很多开源代码的地址:https://github.com/Trinea/android-open-project 一.ListView   android-pulltorefresh 一个强大的拉动刷新开源项目,支持各种控件下拉刷新 ListView.ViewPager.WevView.ExpandableListView.GridView.(Horizontal )ScrollView.Fragment上下左右拉动刷新,比下面johannilsson那个只支持ListVi

Android 自定义弹框dialog-代码开源到github

  csdialog-show.png (35.5 KB, 下载次数: 0) 下载附件  保存到相册 2014-9-29 19:41 上传 地址:https://github.com/futurebp/CSDialog

最封闭的开源系统:话说 Android 的八宗罪

By Andreas Constantinou from VisionMobile.com | lordhong 译, 转载请注明 ifanr.com 译文链接. 你以为 Android 是开放的吗?Google 采用了一系列的控制手段来保证每一部 Android 手机上都有它指定的软件和硬件规格.然而,他们同时又利用 Android SDK 里面的 Apache 许可证来大肆鼓吹 Android 是开放的. 没错,Google 的移动平台是当前最聪明的利用开源来驱动商业议程的实现.但在我们深入

Android logo开源手机**作系统 Android

问题描述 开放手机联盟(一个由 30 多家科技公司和手机公司组成的团体)已开发出 Android,Android 是第一个完整.开放.免费的手机平台. 解决方案 打不开啊

开源就是爽:Android L 源代码完全公布

Android系统最大的最大好处就是完全开放.Google I/O大会上刚刚宣布,如今最新版Android L的源代码也已经迅速公布了. 此次公布源码的自然还是Android L预览版本.开发人员可以据此好好研究一下新系统的新变化,及时调整自己的应用. 在源代码中,Google保留了不少重要内容,包括二进制软件包和内核代码,看来Android L仍在调试中. 支持设备当然是Nexus系列亲儿子,最近的几款设备全部在列,但是较老的Google Nexus.Nexus S就不要想了. Nexus 7

2017 Android GitHub常用开源框架汇总

本文讲的是2017 Android GitHub常用开源框架汇总,现在 GitHub 上流行的开源库极大地节省了开发者从 0 开发的时间,很多公司和个人都在 GitHub 上开源自己的项目,今天我们就来整理一下 Android 开发中一些非常流行的库,也是我们必须掌握的,这样可以使我们在使用到时快速的查找到,这里的总结基本也都是自己在开发中用到的,也就是一些个人的见解,只做参考,不具有权威性 一.网络库 1. Retrofit Retrofit 是 Square 公司研发的网络请求库,也是目前

Android开源项目分包方式学习(eoe、oschina、github)

总感觉Android中关于分包的文章很少,或者几乎可以说没有.但是合理地分包,又可以使整个项目模块化,减少包与包之间的依赖,让整个项目的框架更加清晰,更利于后续功能的拓展. 因为没有相关的文章,所以这里晒出三款开源项目的分包方式,供大家学习. (一) eoe社区 Android 客户端 src ├ cn.eoe.app --存放程序全局性类的包  ├ cn.eoe.app.adapter --存放适配器的实现类的包  ├ cn.eoe.app.adapter.base --存放适配器基类的包 

GitHub上史上最全的Android开源项目分类汇总

今天在看博客的时候,无意中发现了 @Trinea在GitHub上的一个项目 Android开源项目分类汇总,由于类容太多了,我没有一个个完整地看完,但是里面介绍的开源项目都非常有参考价值,包括很炫的界面特效设计.个性化控件.工具库.优秀的Android开源项目.开发测试工具.优秀个人和团体等.可以这样说,每一位Andorid开发人员都能从中找到一个或多个适用自己项目的解决方案,消化吸收并加以利用,可以为自己的APP增色不少.文章最后还列出了部分国外著名Android开发者的信息,包括GitHub

android开源项目下载地址

FBReaderJ FBReaderJ用于Android平台的电子书阅读器,它支持多种电子书籍格式包括:oeb.ePub和fb2.此外还支持直接读取zip.tar和gzip等压缩文档. 项目地址:http://www.fbreader.org/FBReaderJ/ 源码地址:http://www.fbreader.org/files/android/FBReaderJ-sources-1.2.6.zip FBReaderJ-sources-1.2.6.zip (1.95 MB, 下载次数: 85