Android SDK 开发 云托管

开发SDK,拒绝重复造轮子。

本文陈述两种SDK开发方式,第一种AAR方式;第二种远程依赖方式。

具体步骤分为:
一、如何开发SDK?
二、如何打包AAR?
三、如何打包AAR?
四、如何进行SDK远程托管?
五、如何升级远程托管SDK版本?

本文开发一个打印日志工具作为SDK开发示例。

一、如何开发SDK?

首先创建module(Android library),写入功能代码即可。创建module library示意图如下:

sdk是测试打包工具,内部只包含一个NLog日志打印工具类,工具类包含打印debug、error、ignore三级日志方法、设置日志开关的方法及设置日志过滤方法。

日志工具代码块

java 复制代码
/**
 * 日志输出工具
 */
public class NLog {
    // 日志过滤
    public static String TAG = "nlog";
    // 当前等级,用于控制打印哪一级日志
    private static int level = 0;
    // debug 日志等级
    public static final int DEBUG = 1;
    // ignore 日志等级
    public static final int IGNORE = 2;
    // error 日志等级
    public static final int ERROR = 3;

    /**
     * 打印debug日志
     * @param s
     */
    public static void d(String s){
        if (level < DEBUG){
            Log.d(TAG,s);
        }
    }

    /**
     * 打印ignore日志
     * @param i
     */
    public static void i(String i){
        if (level < IGNORE){
            Log.i(TAG,i);
        }
    }

    /**
     * 打印error日志
     * @param e
     */
    public static void e(String e){
        if (level < ERROR){
            Log.e(TAG,e);
        }
    }


    /**
     * set isPrint log
     * @param mLevel 打印日志的等级
     */
    public static void setSwitch(int mLevel){
        level = mLevel;
    }

    /**
     * 设置日志过滤
     * @param tag
     */
    public static void setTag(String tag) {
        TAG = tag;
    }
}

这个日志工具类供外部调用,接下来我们使用Android studio自带的gradle工具打包aar。

二、如何打包AAR?

我使用gradle的assembleRelese或者bundleReleaseAar来生成aar包的。直接使用Android

studio 自带的gradle工具栏进行AAR打包操作。

1、打开AS左侧gradle工具栏,找到打包目标module->gralde->tasks->other,

找到assembleRelese或者bundleReleaseAar。选中双击即可。

2、如果不选择开源,可以在打包前开启混淆,在打包后进行壳加固。开启源码保护。

混淆规则,此处不介绍,可直接搜索。

3、打包结束后,输出的aar包在nadesdk\build\outputs\aar文件下。

4、注意,如果在AS右侧gradle工具烂里找不到。可以按照示例图进行设置。

如未立即生效,重启AS。然后执行二、1步骤打包AAR。

三、如何使用AAR?

在需要的module的build.gradle配置文件添加引用即可。

在项目添加AAR文件包,添加AAR引用。

java 复制代码
android {
    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }
}

dependencies {
    implementation files('libs/nadesdk-release.aar')
}

测试SDK提供的日志输出:

java 复制代码
NLog.d("test app module add arr libaray")

达到预设目标,此时开发SDK完成。

四、如何进行SDK远程托管?

远程托管SDK的目的是开源代码供各位同行一起讨论探讨,也方便管理SDK版本。

SDK开发完成后,创建远程仓库(jitpack,Maven仓库)。把SDK推送到远程仓库托管,通过implementation引用到项目中使用。

方式:我将项目托管到GitHub平台(GitHub作为仓库托管平台,SDK版本分支管理),再通过jitpack生成Maven仓库动态连接。注册GitHub平台、jitpack使用授权GitHub账号登录。

传送门
https://jitpack.io/
https://github.com/

项目推送到托管到github,这里不多说。这里只说如何生成动态连接。

1、创建git远程仓库时,一定注意:选公开(public) ,jitpack只能拉取到公开仓库。

如图:

2、推送SDK代码

3、以SDK版本,创建release。如图:

4、复制release节点仓库地址,生成SDK。

5、打开jitpack平台,拉取release仓库代码,生成SDK仓库地址。

6、通过implementation引用远程仓库,使用SDK。

如何使用,如图。

五、如何升级远程托管SDK版本?

1、上传更新代码后,新增release节点。

2、打开jitpack平台,复制GitHub节点连接,拉取节点仓库代码。

3、拉取release节点代码,生成SDK仓库地址。

java 复制代码
implementation 'com.github.394646857:nadesdk:v1.0.1'
java 复制代码
 NLog.d("test app module add arr libaray")

测试效果达到预设目标,SDK远程托管完成。

相关推荐
火烧屁屁啦19 分钟前
【JavaEE进阶】初始Spring Web MVC
java·spring·java-ee
w_312345432 分钟前
自定义一个maven骨架 | 最佳实践
java·maven·intellij-idea
岁岁岁平安35 分钟前
spring学习(spring-DI(字符串或对象引用注入、集合注入)(XML配置))
java·学习·spring·依赖注入·集合注入·基本数据类型注入·引用数据类型注入
武昌库里写JAVA38 分钟前
Java成长之路(一)--SpringBoot基础学习--SpringBoot代码测试
java·开发语言·spring boot·学习·课程设计
Q_19284999061 小时前
基于Spring Boot的九州美食城商户一体化系统
java·spring boot·后端
张国荣家的弟弟1 小时前
【Yonghong 企业日常问题 06】上传的文件不在白名单,修改allow.jar.digest属性添加允许上传的文件SH256值?
java·jar·bi
ZSYP-S1 小时前
Day 15:Spring 框架基础
java·开发语言·数据结构·后端·spring
yuanbenshidiaos1 小时前
C++----------函数的调用机制
java·c++·算法
是小崔啊2 小时前
开源轮子 - EasyExcel01(核心api)
java·开发语言·开源·excel·阿里巴巴
黄公子学安全2 小时前
Java的基础概念(一)
java·开发语言·python