为了实现和平时开发过程中用到的第三方开源库一样,只需要在build.gradle的denpendencies中添加一行库的引用地址即可,AS帮我们下载该库并引入到当前项目的开发环境中。
这是因为:
- google仓库包含的主要是Google自家的扩展依赖库。
- jcenter仓库包含的大多是一些第三方的开源库。
所以,自己发布开源库只需要将库发布到jcenter仓库下才行。
SDK开发与传统的应用程序开发:
不管是否开源,只要编写一个库提供给其他的i项目使用都称为SDK开发。
异同:
- SDK开发界面相关的工作比较少,很多库甚至没有界面
- SDK开发大多数以实现功能逻辑为主
- 产品的形式不同。应用程序开发的产物是一个可执行文件,SDK开发的产物通常是一些库文件,甚至只有一个库的引用地址。例如okhttp
- 面向的群体不同。SDK开发面向的是其他开发者。
- SDK开发应该考虑如何让编写的库保持稳定的工作、提供简单方便的接口给其他开发者去调用
准备一个开源库:(用的郭婶 的封装权限)
将开源库发布到jcenter仓库:
1. 注册Bintray账号:(Bintray是提供软件分发服务的)
入口:官网
到邮箱中激活账号后就可以进入主页了。也可以通过第三方如github google注册。
这里我选择了通过google账号快速注册.
2.新建一个仓库:
3. AS加入配置将代码发布到jcenter仓库:
官方提供了一个插件,要编写很多的Gradle脚本。
也可以使用第三方公司开发的插件:bintray-release
github地址:bintray-release
打开要发布的模块的build.gradle,加入如下配置:
apply plugin: 'com.novoda.bintray-release'
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.novoda:bintray-release:0.9.2'
}
}
这段配置就可以将bintray-release插件引入到要发布的模块中。
然后在build.gradle后再加入一段闭包的配置:
一个依赖库的引用地址组成结构:
groupId:artifactId:publishVersion
然后打开Terminal窗口,输入如下命令:
gradlew clean build bintrayUpload -PbintrayUser=BINTRAY_USERNAME -PbintrayKey=BINTRAY_KEY -PdryRun=false
BINTRAY_USERNAME 是你的Bintray的用户名,这里的-PbintrayKey=你的APIKEY:
这里查看:
需要注意的是模块的包没不要相同,免得dex合并冲突。
4. 发布到jcenter仓库:
进入仓库详情页,
接下来就是等待审核了,审核通过后会看到一封邮件。如果没有邮件,就代表还在审核中。
一定要等待审核通过!
5. 使用我们的开源库:
进入仓库详情页,赋值引用地址:
打开一个androidi项目:
添加引用并sync一下即可。
注意一定要等待上面的jcenter审核通过,否则找不到:
sync完成后,就可以使用我们的库的API了.具体使用说明请看github仓库主页。
仓库主页:PermissionXKt
后续如果想添加新功能可以对库进行更新,只需要升级publish包的版本号就行。
版本号的升级,版本号通常是以3位数字格式。
- 一些bug修复或小功能的修改,升级最后一位版本号
- 一些比较大的功能或API变更,升级中间一位版本号
- 涉及非常大的功能甚至是整体架构的变更,升级第一位版本号
改完版本号还是执行上面的gradle命令就可以发布新版了。