前言
- 在进行
Android
开发中,很多时候 我们都是充当 代码引用者的角色,即通过引用别人的代码来实现功能需求
// 通过依赖来引用Okhttp开源代码库,从而实现发送网络请求的功能
dependencies {
compile 'com.squareup.okhttp:okhttp:2.4.0'
}
- 今天,我将教大家如何做一名 合格的代码开源者,所以本文概括如下:
目录
1. (需求)代码引用者需要什么?
将 整个开源项目 当作一款产品,代码引用者 = 用户,用户的需求是什么呢?
- 了解开源库的相关信息(是什么、有什么用...)
- 具体如何将开源库代码应用到项目中
- 希望获取源码,从而进行二次开发 、作出代码贡献 & 学习
若要成为一名 合格的代码开源者,则需要满足代码引用者的上述基本需求。
2. (解决方案)代码开源者需要做什么?
- 为满足上述需求,解决方案如下:
- 即,一名 合格的代码开源者在开源项目时,需要做到:
- 上传源码 到 远程版本控制仓库
Github
上 - 在远程版本控制仓库
Github
上添加说明文档 & 开源协议 - 上传源码 到 远程
Android Library
文件服务器
- 上传源码 到 远程版本控制仓库
3. (总体方案)开源流程步骤
-
根据需求 & 解决方案,得出最终的开源流程步骤如下:
接下来,我将按照通过 开源1个自定义
View
项目的例子,从而详细讲解上面的每一步解决方案 & 整个开源流程步骤。
4. (详细方案)流程步骤详解
下面,我将详细讲解每个步骤。
4.1 写好开源库代码
前言提到,本文不是 以撰写开源代码为目的的技术教学文档,而是 一份 开源项目规范性的流程文档,所以
- 本文需要开源的代码库 以1个简单的自定义View为例
- 具体请看文章:手把手教你写一个完整的自定义View
4.2 上传源码 至 远程版本控制仓库Github
- 作用:将开源库代码存放到远程仓库,方便其他人获取源码
- 具体操作:关于Git、Github的介绍 & 使用请看文章:程序员必知:图文清晰介绍Git与Github(含二者关系、区别 & 使用场景)
4.3 上传源码 至 远程Android library文件服务器
- 作用:方便 其他
Android
开发者 通过Android Studio
的build.gradle
文件中添加依赖,从而方便使用你的代码Android Library
// 通过远程依赖来引用Okhttp开源代码库,从而实现发送网络请求的功能
dependencies {
compile 'com.squareup.okhttp:okhttp:2.4.0'
}
- 由于在
Android Studio
采用 添加引用依赖的方式更加简单,所以此处的远程Android library
文件服务器以JCenter
为例
关于JCenter & 如何上传 请看文章如何使得自己的代码被别人优雅引用:快速上传Android Library到JCenter超详细教程
4.4 在远程版本控制仓库Github上 添加 说明文档(README文档)
- 作用:介绍 开源项目 及其 使用方法
分为英文版本(
README.md
) & 中文版本(README-CN.md
)
- 具体操作:添加文档方法主要有2种
- 本地撰写 & 上传:本地写好
README.md
文档 ->> 添加到Android Project
项目的根目录 ->> 通过命令行Push
到Github
- 本地撰写 & 上传:本地写好
- 在
Github
上撰写:直接在GitHub
该项目仓库中Add a README
- 文档模板
具体该如何写开源项目说明文档,请以我其中一个开源项目作为参考:Kawaii_LoadingView。欢迎Star
!
善解人意的我也添加上了英文文档模板,请自取!
4.5 在远程版本控制仓库Github上 添加开源协议
作用:制定 开源代码贡献者对源码修改 的规则
开源协议类型
- 选择开源协议的标准
- 添加开源协议操作
- 具体操作请看GitHub添加开源协议帮助文档
- 若英文不好,请看隔壁隐藏的的说明图。
- 添加成功示意图
- 至此,一个合格的项目开源流程已经讲解完毕。
- 今后,代码引用者可以
- 通过
Github
上的文档了解你的开源库如何使用 - 通过 引用
JCenter
依赖远程使用你的项目 - 通过
Github
项目仓库获取你的源码进行二次开发
5. 总结
- 本文全面介绍了一份开源项目规范性的文档,相信阅读完本文后,你也能做一个合格的代码开源者
- 下一篇文章我将对讲解
Android
的相关知识,感兴趣的同学可以继续关注本人的简书哦。
相关系列文章阅读
Carson带你学Android:学习方法
Carson带你学Android:四大组件
Carson带你学Android:自定义View
Carson带你学Android:异步-多线程
Carson带你学Android:性能优化
Carson带你学Android:动画
欢迎关注Carson_Ho的简书
不定期分享关于安卓开发的干货,追求短、平、快,但却不缺深度。