Android培训
美国上市Android培训机构

400-111-8989

热门课程

如何打造一个高逼格的android开源项目

  • 时间:2017-06-20
  • 发布:Android培训
  • 来源:Android教程

在平时的开发过程中,我们经常会查阅很多的资料,最常参考的是 github 的开源项目。通常在项目的主页面能看到项目的简介和基本使用,并且时不时能看到页面汇中有好多的彩色标签,看起来很酷,很专业,很有逼格,能提升很多的好感度。

1

前言

本文又是一篇很长的文章,如之前写的某篇文章一样,基本是一口气连续两三天的写。写啊写啊写,不知不觉就写了好多,其实有很多是素材图片,务必做到每个细节我都实践一遍。

考虑到同学们的时间有限,各取所需,所以按照我的惯例,首先有一篇完整版,其次,有一篇缩略版。可是这次缩略版不好做,所以综合考虑,把每个单独的知识点拆分出来,抓住重点,尽量让大家看的开心。

注:作者拆分了一系列精简版本,由于微信不支持外链贴上效果也不是很好,可以点击阅读原文,进行查看。

徽章项目 Demo github 地址:

https://github.com/gdky005/AndroidBadge

下面正文,正式开始。

2

范例

我们以最流行的 android 开源项目 MPAndroidChart 为例来看看。

  1. 前两个蓝色的标签:开始两个蓝色的标签是开源项目主要贡献者 Twitter 的联系方式,点击后可以跳入到 Twitter 的主页,查看该大神的 动态。

  2. 橘色的标签:是国外比较有名的 开源项目网站 android-arsenal, 很多开源项目都会在这里找到,有该项目的详细介绍。包含组员,版本号,github 项目基础信息等等。点击后会进入 MPAndroidChart 项目的首页,能看到有好多想知道的,不想知道的各种信息。

  3. release蓝色的标签: 点击后能进入到比较有名的 jitpack.io 对应的MPAndroidChart 页面,直接获取 MPAndroidChart 的最新版本,也能看到之前的构建历史。下面会重点介绍 jitpack.io 的使用。

  4. 绿色的标签: 这个比较有意思,是 当前想支持的最低版本,MPAndroidChart的最低版本是 api-8。 点击后会进入到Android 2.2–2.2.3 Froyo (API level 8) 的详细介绍。这个功能是 android-arsenal 专门提供 开发者使用的。 下面也会有所介绍。

下面我们将 这些标签称之为 徽章 (shields)。

Top 30 android 开源项目徽章

我们尝试在 github 里面搜索 以 android 关键字 开发语言为 java 的开源项目。

统计情况如下:

  1. Retrofit 0

  2. okhttp 0

  3. Butter Knife 0

  4. MPAndroidChart 4

  5. Android-Universal-Image-Loader 2

  6. glide 1

  7. leakcanary 0

  8. EventBus 1

  9. picasso 0

  10. iosched 0

  11. Fresco 1

  12. lottie-android 0

  13. RxAndroid 3

  14. libgdx 1

  15. SlidingMenu 0

  16. PhotoView 1

  17. android-async-http 1

  18. material-dialogs 5

  19. AndroidUtilCode 0

  20. androidannotations 3

  21. Material-Animations 1

  22. fastjson 5

  23. ViewPagerIndicator 0

  24. plaid 0

  25. PocketHub 1

  26. tinker 4

  27. Android-CleanArchitecture 2

  28. Android-PullToRefresh 0

  29. MaterialDesignLibrary 1

我们是筛选容器就是 30个,统计日期:2017年04月27日(随着时间推移,可能略微有变动)。

使用标签的有 18个,未使用的有12个。 使用概率大约是:60%。

如果筛选容器的范围再大一点可能更多,没有使用徽章的12个项目,可能由于历史原因,或者个人原因未使用,但是不管怎么说,使用徽章的人会越来越多。

3

为什么要使用徽章?


徽章的使用不仅仅是为了装 B,而是为了让开源想更高效。进入项目主页一眼能看出需要的东西,例如该项目能否编译通过,当前最新的版本是什么等。

徽章能突出视野,github 默认给我们展示的是黑白世界,但是通过 徽章,将会得到改变。重要的信息可以一目了然。


最常用徽章有哪些?

一份不太靠谱的标准,不过你应该掌握:

(PS: 上图中的图标顺序对应下面的顺序)

  1. jitpack 徽章:JitPack 是一个仓库,类似 maven,binary, 主要是帮我们生产 android 项目的 aar or jar 的平台。基于 GitHub,可以很方便将 library 发布到远程,然后可以用 gradle 依赖到任何一个项目中。

  2. travis-ci 徽章:Travis-CI 是一个线托管的CI服务,不需要自己搭服务器,在网页上点几下就好,用起来更方便。最重要的是,它对开源项目是免费的。

  3. circle-ci 徽章:Cricle-CI 是也一个线托管的CI服务,和上面相同,不过这个相对来说比较好用一些,可以 SSH 到测试容器,方便在出问题的时候上去调试找原因,界面相对好看一些。

  4. codecov 徽章:Codecov 是开源的测试结果展示平台,将测试结果可视化。Github上许多开源项目都使用了Codecov来展示单测结果。

  5. api level 徽章:Api-Leavel 是 android-arsenal 网站提供的 android api 展示的徽章。可以在项目主页中直接使用 badge 的内容。

  6. codacy 徽章:编程代码自动审查服务平台。帮助开发者及时发现代码中的 bug,提升软件运行质量,主要包括代码质量、语法规范、功能可用性方面的检查。

  7. 个人专属 徽章:shiedls 根据自己的需求可以定制很多样式的徽章,全凭个人 爱好,怎么开心怎么玩。


环境说明

这里我用一个简单的 android 项目来做一个说明,其他语言也是可以的,这里仅仅展示一个实例。

我的本机的android环境说明如下:

  • Mac

  • Android Studio 2.4 preview 4

  • gradle: 3.4.1

  • java: 1.8.0_73

  • buildToolsVersion: 25.0.2

  • compileSdkVersion: 25

  • minSdkVersion: 14

  • support: appcompat-v7:25.1.0

  • constraint: constraint-layout:1.0.0-beta4

  • classpath: com.android.tools.build:gradle:2.4.0-alpha4

用其他版本或者环境也是可以的, 这里只是说明。 

如果任何遇到问题,可以在我的博客里面留言,联系详情为:http://www.gdky005.com/about/ 因为该文的完整版真的很长,涉及到很多的技术,所以专门设立了 QQ群:621094999, 有疑问或非常感兴趣的同学,可以来次探讨,也许一些新功能就是你们发觉的呢。

4

JitPack 的使用

官网: https://jitpack.io


(1)创建 Android Library

在 AS 中创建标准的 android 项目

创建 Library

(2)配置相关文件

进入 jitpack android 可以看到 jitpack 为我们提供的文档帮助。

在项目的根目录下的 build.gradle 文件中添加:

在 library 下的 build.gradle 中添加:

 对应官网中说的 『group='com.github.YourUsername’』, 其实可以不写,写不写都会自动生成。 即使你写成了别的,最终还是以这样的格式输出。

AndroidBadge 中 的 build.gradle :

classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' // Add this line

AndroidBadge 里面的 badge (library) :

apply plugin: 'com.github.dcendents.android-maven'
(3)发布到 Github (这里直接展示 AS 中的界面图形操作,会命令行的同学随意)

登录自己的 github 账号,然后创建一个 项目,在首页右边能看到:

点击 大绿色 按钮,并填写信息

 那个协议,你们随意,这里只是演示。

创建成功后

拷贝当前项目地址。

在 AS 的项目中创建 git 仓库:

点击后,直接 选择 ok。将项目添加到 git 管理

项目中的文件都变成绿色后:

耐心等待完成后, 本地项目已经被 git 管理起来了,然后把代码提交到 github 即可。可能会有冲突,自行解决即可。

现在我们给 library 的 badge 项目添加一个工具类:

并提交到 github。

(4)Github 打 release or tag

创建第一个 release 分支:

发布成功以后就能看到:

一般用 release 就可以了, 在适当的时候 用 tag。

(6)在 JitPack 上生成 aar
  1. 进入 https://jitpack.io/。

  2. 将 github 的项目地址: https://github.com/gdky005/AndroidBadge, 直接拷贝 到 jitpack 网页中的文本框中。

点击 Look Up 后

等里面的那个圈圈 转完 以后

说明已经发布 aar 成功,那么我们 可以直接使用了。 如果点开这个东西,会看到编译的和发布的过程。

如果是红色的,说明有错误,点开查看,修改后重新构建。

在 app Demo 中测试是否生效

点击 get 后,能看到:

给项目根目录下的 build.gradle 添加:

给app 项目里面的 build.gradle 添加:

AndroidBadge 中 的 build.gradle :

maven { url 'https://jitpack.io' }

AndroidBadge 里面的 app 的 build.gradle :

compile 'com.github.gdky005:AndroidBadge:v1.0.0'

好的,现在我们已经添加成功了,在 MainActivity 里面是是吧,看能否调到之前在 library 里面的写的 Utils.getVersion()。很高兴的是我们调出来了:

在项目的最底下也能看到:

运行 app 项目:

问题来了,我们修改library 后也能调用到吗?

让咱们一起试试吧:

1.修改 badge 项目中的 1.0.0 为 1.0.1 :

2.提交代码后,push 到 github。 提交成功以后,我们重复上面的打 release 步骤

3. 然后再去 jitpack 上看看:

多了一个 v1.0.1, 点击 get 吧。

4.发布成功后,我们去 app 里面试试。

5.同步后,直接运行 app。非常好,我们的修改的东西已经变了:

至此, jitpack 基本也差不多了,但是貌似缺少了最重要的一点吧。

5jitpack 的徽章怎么弄
还是在刚刚的 jitpack 界面,只是我们把 页面拉倒底部。

是不是看到了熟悉的 md 文档的格式呢? 看不懂也没关系,下面会专门讲解。

拷贝内容:

打开 github 的 AndroidBridge 项目:

点击该文件,让我们在线编辑下:

给 github 中的 这个 readme.md 文件添加点东西吧。

让我们 保存下。

然后回到项目首页看看:

棒棒的,添加成功。

6

Travis CI 的使用

官网: 

http://travis-ci.org/

ps: 这个是公开的,如果需要使用私有的,请使用 .com 域名。
需要提醒的是:每次提交代码后都会重新下载需要的资源文件哦,所以时间很长,耐心等待吧。

(1)TravisCI 有什么用?

travis-ci 就是 自动化 CI 工具,类似于大公司经常使用的 Jenkins,但是 travis-ci 是在云端的,而是支持 github, 还免费,我们可以 用 travis-ci 做很多的事情,不仅仅是 编译看 项目有没有问题。

例如在项目构建结束以后,我们可以打包,并发布 apk 到都 蒲公英, fir,也可以用邮件通知给相关的开发人员和业务任务。 做一些简单处理,轻轻松松。这部分内容到后面尽快整理,在写一篇。

(2)添加 github 项目到 travis-ci

进入 Travis 官网后,使用 GitHub 账号 登录,成功后:

点击 加号 ,能看到你 GitHub 里面的所有:

如果没有项目或者没有你新建的项目,请点击右上方的 Sync account 按钮。

点击这里:

开启 Travis 构建。点击这个可以配置该项目:

默认是空的:

在 项目中添加 travis-ci 需要的 .travis.yml 文件。在项目根目录下直接创建 一个 .travis.yml 的文件。

直接在文件里面添加代码:

.travis.yml 文件 源代码

因为该文很长很长,所以暂时就不解释具体含义了,可以看看官方文档。

push 项目到 github, travis-ci 自动监测构建

提交到代码,并 push 到 github。会自动触发 Travis 的自动构建。

下面黑色部分是构建的过程:

黑框上的白色点点点击后会变成绿色,会自动滚动到最下面。

喝一杯咖啡,慢慢等待吧,最难熬的时候已经过去,此刻是享受的时候了。

回到首页刷新后,能看到:

说明我们已经构建成功了。

.travis.yml 需要注意的地方

初次使用 Travis 的试试,总遇到 说 android 的一些协议未接受而构建失败,导致耗费了一两天,曾经一度想放弃,但是最终坚持了下来,通过各种搜索,摸索,猜测,终于搞定。

其实最初的项目是这个:https://github.com/gdky005/TestJitpack ,里面有很多辛酸史记录,从提交记录能看得出来,有兴趣的可以研究研究,也许能解决你现在的问题。

Travis CI 协议问题解决方法:

http://stackoverflow.com/questions/37615379/travis-ci-build-doesnt-work-with-android-constraint-layout

最重要部分在这里:

(3)添加 travis-ci 徽章到 github

激动的时刻再次到来,让我们找找徽章在哪里呢?

让我们来选择 markdown 格式:

并复制上。

同样如上修改 readme.md。

加空格后,直接贴上去:

这里需要说明的是,如果换成,图标也会换行哦。这样写就能保证所有的图标在一行了。

回到项目首页以后就能发现:

添加 Travis 徽章成功。

ok,由于篇幅原因,该文实在太长,完整版本可以点击阅读原文查看。

最终效果如下:

当然,本文的意义远不是单纯的去获取徽章,这些徽章都代表了明确的意义,比如上传的仓库、版本号、构建成功信息等~这些信息一方面方便了使用者,另一方面也能够帮助自身发现一些问题~~

上一篇:Android触摸事件传递机制知识点教程
下一篇:Android中开发需要的高效助推的命令总结

Android 弹性动画的三种实现方式

Android培训教程:Android Gradle高级用法,动态编译技术

Android程序员 那些你不可错过的好书

Android 利用Gradle实现app的环境分离

选择城市和中心
贵州省

广西省

海南省