美文网首页
发布Android开源库

发布Android开源库

作者: lkmc2 | 来源:发表于2018-01-02 14:00 被阅读47次

在很多时候我们都会写一些自己的工具类或者自定义View,因为有着自己独到的见解,希望分享给他人使用,并在别人的指导和批评中将代码变得更完善,因此需要发布自己的开源库。

下面将叙述一下本人发布开源库的流程:
1.在Android Studio新建一个名为LogsDemo的项目后,选择File->New->New Module。


步骤1.png

2.随后选择Android Library。


步骤2.png
3.随后输入模块名OpenLibrary,此模块名可自定义。随后点击Finish,完成模块的添加。
步骤3.png

4.之后展开模块OpenLibrary,在java目录的包下新建一个Java类。


步骤4.png

这里本人建立的Java类是Logs.java,代码如下:

package com.linchange.library;

import android.app.Activity;
import android.util.Log;
import java.util.Arrays;

/**
 * Created by lkmc2 on 2017/12/31.
 * 打印日志工具类
 *
 * PS:
 * 1.如果是想全局打印同一个Log名,直接修改下面的TAG变量的名称,然后使用类名 + 点 + 方法名即可,
 * 如:Log.v("你想输入的信息");
 *
 * 2.如果想每一个Activity都使用不同的Log名,直接在t(String)方法中传入自定义的TAG名,然后再调用方法,
 * 如:Log.t("自定义的TAG名").v("你想输入的信息");
 *
 * 3.如果想每一个Activity都使用不同的Log名,又不想另行定义TAG名,直接在t(Activity)方法中传入Activity的Context,
 * 然后再调用方法,如:Log.t(this).v("你想输入的信息");,这时将类名作为TAG名(不含包名);
 *
 * 4.使用t(String)或者t(Activity)方法后,全局TAG的名字将永久改变,不建议将Log.v(String)方法与
 * Log.t(String).v(String)混搭使用。要么只使用Log.v(String),或者只使用Log.t(String).v(String)的方式。
 *
 * 4.如果不喜欢编译器出现黄线警告,可在类上添加@SuppressWarnings("AccessStaticViaInstance")注解。
 */

public final class Logs {

    private static String TAG = "LogInfo"; //全局TAG名
    private static final boolean DEBUG = true; //打印日志的开关,若为false不打印日志

    private static class Holder { //静态内部类
        private static final Logs INSTANCE = new Logs(); //静态实例对象
    }

    /**
     * 设置TAG名
     * @param tag TAG名
     * @return Logs类实例对象
     */
    public static Logs t(final String tag) {
        TAG = tag;
        return Holder.INSTANCE;
    }

    /**
     * 设置TAG名(使用Activity的类名设置)
     * @param activity Activity对象
     * @return Logs类实例对象
     */
    public static Logs t(final Activity activity) {
        if (activity != null) {
            String activityName =  activity.getClass().getName(); //获取类名
            TAG = activityName.substring(activityName.lastIndexOf(".") + 1); //设置TAG名(去掉包名)
        } else {
            throw new ClassCastException("You should use Activity context");
        }
        return Holder.INSTANCE;
    }
    
    public static void v(final String msg) {
        if (DEBUG) {
            Log.v(TAG, msg);
        }
    }

    public static void e(final String msg) {
        if (DEBUG) {
            Log.e(TAG, msg);
        }
    }

    public static void w(final String msg) {
        if (DEBUG) {
            Log.w(TAG, msg);
        }
    }

    public static void i(final String msg) {
        if (DEBUG) {
            Log.i(TAG, msg);
        }
    }

    public static void d(final String msg) {
        if (DEBUG) {
            Log.d(TAG, msg);
        }
    }

    //以下方法是上面静态方法的重载,防止Android Studio中实例无法调用静态方法

    public void v(final String... msg) {
        if (DEBUG) {
            Log.v(TAG, Arrays.toString(msg));
        }
    }

    public void e(final String... msg) {
        if (DEBUG) {
            Log.e(TAG, Arrays.toString(msg));
        }
    }

    public void w(final String... msg) {
        if (DEBUG) {
            Log.w(TAG, Arrays.toString(msg));
        }
    }

    public void i(final String... msg) {
        if (DEBUG) {
            Log.i(TAG, Arrays.toString(msg));
        }
    }

    public void d(final String... msg) {
        if (DEBUG) {
            Log.d(TAG, Arrays.toString(msg));
        }
    }

}

5.之后在Project的build.gradle配置文件的dependencies中添加android-maven-gradle的插件(具体参看 android-maven-gradle-plugin),本项目添加如下一行代码:

classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
步骤5.png

6.随后在OpenLibray的build.gradle文件中添加如下三行(其中group和version都可以自定义):

apply plugin: 'com.github.dcendents.android-maven'
group='com.github.lkmc2'
version = '3.0'
步骤6.png

7.而后在Project的setting.gradle文件中添加一行(rootProject.name属性可以自定义):

rootProject.name = 'com.lkmc2.logs'
步骤7.png

8.项目开发完成后,按下图所示步骤将项目同步到Github上。


步骤8.png

9.打开开源项目的地址(本项目地址为:https://github.com/lkmc2/LogsDemo),点击release。

步骤9.png

10.随后打开下图所示的按钮create a new release(或draft a new release)。


步骤10.png

11.其后输入版本名,以及版本描述信息之后,点击Publish Release按钮,发布新版本。


步骤11.png

12.随后打开JitPack(一个用于发布JVM或者Android库的网站)的网址https://jitpack.io/,在输入框中输入Github中项目的网址(本项目的地址是:https://github.com/lkmc2/LogsDemo),点击Look up按钮。

步骤12.png

13.系统将列出该项目已发布的所有版本,找到想要发布的版本,点击Status下的Get it按钮,点击后稍等片刻,即可顺利生成在Android Studio可用的开源库。


步骤13.png

生成开源库后,系统会提示之后在新项目使用开源库所需要添加的参数。


新项目使用开源库所需要添加的参数.png

14.发布后的开源库如果要在新项目中进行使用,需要按如下步骤操作:
①在Project的build.gradle文件中的allprojects下的repositories添加如下一行:

maven { url 'https://jitpack.io' }
步骤14.png

②在app的build.gradle的dependencies中添加如下一行(视JitPack网站给出的参数而定):

compile 'com.github.lkmc2:LogsDemo:v7.0'

随后点击Sync Now,同步完成后即可在新项目使用开源库。


步骤15.png

本项目的地址:https://github.com/lkmc2/LogsDemo

相关文章

网友评论

      本文标题:发布Android开源库

      本文链接:https://www.haomeiwen.com/subject/enmfnxtx.html