如何创建和发布你自己的安卓库

682 阅读5分钟

如何创建和发布自己的Android库

每个Android开发者都会考虑如何重复使用他们的代码,而不是从头开始重写。通过开发一个库,开发者还可以让他们的代码被其他开发者使用,从而为开源生态系统做出贡献。

没有开发者可以在没有库的情况下工作,因为它们是开发过程中如此重要的组成部分。它们允许你通过利用预先构建的解决方案而不是自己创建所有的代码来加快你的开发速度。

前提条件

要跟上进度,请确保你有以下条件。

  • 安装了Android Studio。
  • 对如何创建和运行Android应用程序有扎实的了解。
  • Kotlin编程语言有基本了解。

什么是Android库?

库是一个类的集合,可以被Android应用程序作为依赖性使用。库通常被用来提供可以被其他应用程序重复使用的通用功能。

安卓库的结构与安卓应用模块的结构是一样的。在其他方面,库可以包括源代码、资源文件和安卓清单。它不是在设备上运行的APK,而是编译成一个Android Archive(AAR)文件,可以作为Android应用模块的依赖。

第1步 - 创建一个项目

创建一个空的Android Studio项目,如下图所示。

New Project

第2步 - 创建库模块

在这个步骤中,在你的Android Studio中。切换到project ,右键点击你的项目名称,创建一个新的模块。

Switch Module

一个模块创造了独立性,据此我们可以指定我们的库和任何其他资源的依赖性,这些都是独立于应用模块的。

当创建一个库时,你可以选择Android LibraryJava or Kotlin Library

  • Android库--可以包含Android的依赖。
  • Java或Kotlin库--只需要Kotlin或Java代码的库,它不需要任何依赖性。

New Module

创建完我们的模块后,我们的模块的gradle文件就被创建了。

在该gradle文件中,我们可以删除自动添加的依赖关系,因为我们现在不需要它们。在其他情况下,你的库可能依赖一些库,所以你需要在模块的gradle文件中包含它们。

第3步 - 创建一个包含你的库逻辑的类或文件

在这一步,创建一个包含你想作为库共享的代码的类或文件。

在其他情况下,你的库可能是为默认的Android类添加更多的功能,创建一个自定义的视图或添加带有你想分享的有用代码的函数。

在我们的案例中,在新创建的模块里面,我们将创建一个包含一些功能的类,以列出Kenyan counties

class Kenya {
    companion object {
        private val counties: HashMap<String, String> = hashMapOf(
            "Mombasa" to "001",
            "Kwale" to "002",
            "Kilifi" to "003",
            "Tana River" to "004",
            "Lamu" to "005",
            "Taita Taveta" to "006"
        )

        fun getCounties(): HashMap<String, String> {
            return counties
        }

        fun getCountyName(code: String): String {
            var county: String? = null
            counties.forEach {
                if (it.value == code) {
                    county = it.key
                }
            }
            return county ?: "not found"
        }

        fun getCountyCode(name: String): String {
            var code: String? = null
            counties.forEach {
                if ((it.key).lowercase() == name.lowercase()) {
                    code = it.value
                }
            }
            return code ?: "not found"
        }
    }
}  

第3步 - 在本地使用该库

如果你想在你的项目中本地使用这个库(你已经创建了这个库),在你的应用级build.gradle

implementation project(':MODULE_NAME')

你应该用你创建的模块的名称替换括号中的名称,并且应该在前面加上冒号。

同步成功后,尝试在你的项目Activities或Fragments上使用该库,它应该能像预期的那样工作。

第4步 - 发布库

现在,这个库只能在我们的项目中本地使用。如果我们想分享这个库,让其他开发者可以在他们的项目中使用它,我们必须把它发布到一个远程仓库。

你可以将库发布到以下两个地方。

  • [Jitpack]
  • [Maven中心]

在本教程中,我们将把库发布到Jitpack,这需要我们将代码推送到Github。有一个神奇的插件,可以让我们的库更容易推送到Github上。

把这个插件添加到你的库模块gradle文件中。

plugins {
    ...
    id 'maven-publish'
}

让我们通过在库模块gradle文件内粘贴以下内容来配置这个插件,并对其进行正确修改。

  • 用你的Github用户名替换groupId
  • artifactId 改为你希望你的项目被称为的名字。
  • 你也可以修改version
afterEvaluate {
    publishing {
        publications {
            release(MavenPublication) {
                from components.release

                groupId = 'com.github.JoelKanyi'
                artifactId = 'kenyan-counties'
                version = '1.0.0'
            }
        }
    }  
}

为Jitpack添加一个配置文件

从Android模式切换到项目模式,在你的根目录下,创建一个名为jitpack.yml 的文件。

Jitpack File

这个文件指定Jitpack应该使用openjdk11 来构建我们的库。

jdk:
  - openjdk11
before_install:
  - ./scripts/prepareJitpackEnvironment.sh

将我们的代码推送到Github

在这一步,使用git提交你的工作,然后Share 项目到Github。

Push Github

确保该项目是公开的,并注意你在分享该项目时传递的名字将被用于库的依赖链接。

创建一个版本

为了使我们的库发挥作用,我们需要在Github上创建一个版本。进入你新创建的版本库,在你的右边,点击create a new release

发行版将决定我们库的版本。

点击Choose a tag ,输入你的库的初始版本,然后点击Enter 。同时,输入你发布的标题和库的描述。最后,点击Publish release 来发布。

Release

用Jitpack.io最终完成

首先,复制你的资源库的URL--在这种情况下,我的URL是https://github.com/JoelKanyi/KenyanCounties

进入Jitpack并搜索你的repository URL。

如果查找成功,Jitpack将显示你的库的一个版本。你可以继续点击Get it 。等到日志运行完毕,看看你的代码是否有任何错误。

如果一切顺利,并且日志显示一个蓝色的文件图标,那么恭喜你,这个库已经发布到Jitpack了。

如果你向下滚动Jitpack的页面,你会看到一些关于我们如何在其他项目中包含该库的信息。

Share Library

就这样,你可以继续在你的项目中测试这个库了。

总结

在本教程中,我们已经了解了什么是库,创建库的步骤,最后,我们看到了如何将库发布到[Jitpack]。