修改原有demo,新建个库模块,在其中写个工具类AppUtils:
Kotlin
package com.zx.library
import android.Manifest
import android.content.Context
import android.net.ConnectivityManager
import android.net.NetworkCapabilities
import android.os.Build
import android.text.TextUtils
import androidx.annotation.RequiresPermission
import java.util.regex.Pattern
/**
* 通用公共工具类
* 网络判断、手机号、邮箱、字符串、手机号脱敏、时间、密码校验等
*/
object AppUtils {
//region 网络相关
/**
* 判断网络是否可用
*/
@RequiresPermission(Manifest.permission.ACCESS_NETWORK_STATE)
fun isNetworkAvailable(context: Context): Boolean {
val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val network = connectivityManager.activeNetwork ?: return false
val capabilities = connectivityManager.getNetworkCapabilities(network) ?: return false
return capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)
|| capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)
|| capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET)
} else {
@Suppress("DEPRECATION")
val networkInfo = connectivityManager.activeNetworkInfo
return networkInfo?.isConnected ?: false
}
}
//endregion
//region 正则校验
/**
* 校验手机号(国内11位)
*/
fun isPhoneNumber(phone: String): Boolean {
if (TextUtils.isEmpty(phone)) return false
val regex = "^1[3-9]\\d{9}$"
return Pattern.matches(regex, phone)
}
/**
* 校验邮箱
*/
fun isEmail(email: String): Boolean {
if (TextUtils.isEmpty(email)) return false
val regex = "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+\$"
return Pattern.matches(regex, email)
}
/**
* 简单密码校验:6-20位字母数字组合
*/
fun isSimplePwd(pwd: String): Boolean {
if (TextUtils.isEmpty(pwd)) return false
val regex = "^[A-Za-z0-9]{6,20}$"
return Pattern.matches(regex, pwd)
}
//endregion
//region 字符串常用
/**
* 判断字符串是否为空
*/
fun isEmpty(str: String?): Boolean {
return str.isNullOrBlank()
}
/**
* 字符串非空
*/
fun isNotEmpty(str: String?): Boolean {
return !isEmpty(str)
}
//endregion
//region 脱敏工具(项目超常用)
/**
* 手机号中间4位脱敏 138****1234
*/
fun phoneDesensitize(phone: String): String {
return if (isPhoneNumber(phone)) {
phone.replace(Regex("(\\d{3})\\d{4}(\\d{4})"), "$1****$2")
} else phone
}
/**
* 邮箱用户名脱敏
*/
fun emailDesensitize(email: String): String {
if (!isEmail(email)) return email
val split = email.split("@")
val name = split[0]
val domain = split[1]
return if (name.length > 2) {
name.first() + "***" + name.last() + "@$domain"
} else email
}
//endregion
//region 版本、设备简单工具
/**
* 获取安卓系统版本号
*/
fun getAndroidVersion(): Int {
return Build.VERSION.SDK_INT
}
//endregion
}
这个模块的AndroidManifest文件加上需要的权限,修改如下:
XML
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>
app/build.gradle.kts 添加依赖该库模块:
implementation(project(":zxlibrary"))
MainActivity 测试调用该工具方法:

运行:

ok. 上传下代码。 下面是把本地工程关联github并推送。
先控制台执行 git init 以及 git add . 命令:

commit:

再进入github首页。点击New repository按钮创建仓库:

填写如下:

点击最下面按钮创建仓库。就创建好了,如下:

关联远程仓库,并推送:

ok. 看下远程仓库,确实推送成功了:

再给项目打个版本tag,即标记为是一个正式版本:

再去JitPack一键发布. 网址为:https://jitpack.io/ , 把仓库地址输入:

点击搜索,能看到版本:

等一会,点击get it按钮:

能看到下面的提示:

现在后台正在编译库,等几分钟,刷新下页面。
顺便把上面的配置提示拷贝下来,也许安卓工程依赖远程仓库能用到:
How to
To get a Git project into your build:
Step 1. Add the JitPack repository to your build file
Add it in your root settings.gradle at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
Add it in your settings.gradle.kts at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
}
Add to pom.xml :
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Add it in your build.sbt at the end of resolvers:
resolvers += "jitpack" at "https://jitpack.io"
Add it in your project.clj at the end of repositories:
:repositories [["jitpack" "https://jitpack.io"]]
Step 2. Add the dependency
:dependencies [[com.github.qq632940642/zxLibrary "v1.0.0"]]
过了一会i,刷新这个页面,还是显示get it按钮, 应该是没构建成功?应该是这个库文件夹名不识别? 修改下库文件夹名再重试下。右键库模块 → Refactor → Rename, 改名为library:

打一个新版本号:
bash
git add .
git commit -m "rename lib to library"
git tag v1.0.1
git push origin v1.0.1
再去搜索下:

看到每个版本都有构建日志。 可以查看构建是否成功。看到1.0.0是成功的,后面这个1.0.1版本多余了。
验证下demo,先修改下app/build.gradle.kts 中的依赖,注释掉原来的,改成依赖远程仓库的:

settings.gradle.kts也要改,加上
maven { url = uri("https://jitpack.io") }
如下:

ok. 编译运行成功。
再看下MainActivity,点击这个工具类:

可以看出现在是依赖远程的aar包了:

ok.