androidstudio module 应用进阶

Time will give us what we want , and believe it ,we are worth
waitting.

简要:

  1. androidstudio项目中引入module
  2. 引入第三方的module源文件
  3. 将modlue以aar文件的形式进行引用
  4. 将自己的module上传至远程仓库并进行使用

androidstudio 被android开发者广泛使用,modlue 的引入对于我的帮助很大,在空闲之余,将自己在modlue的使用中的一些经验和问题做一个总结。也希望对进行探索这方面的同学一些帮助。

1:androidstudio项目中引入module

step1:创建自己的项目(略)
step2:创建module
file-->new-->new Module创建一个module
step3:选择 androidlibrary (next)—>根据自己的需要修改包名—>finish
step4:成功之后的项目结构图如下
这里写图片描述

setp5:在modlue中书写自己公共相关的类.

step6:在主项目中进行module依赖
这里写图片描述

step7:主项目中进行调用。如遇类名相同的情况下,记得明确自己的包名。


但是在创建module后会遇到没有library的图标这里写图片描述,导致modlue没法使用。

解决相应办法请访问:


引入第三方的module源文件

step1:直接引入,File—>New—>import Module

file--->new--->import Module

step2:选择相应的modlue

这里写图片描述

step3:finish完成,引入成功的目录结构和自己创建一个modlue一样。使用方法也是一样。

将modlue以aar文件的形式进行引用

There are two ways to import module.

Methods one:直接以aar的形式引入

这里写图片描述

2:选择import JAR/AAR Package,点击Next

这里写图片描述

3:在本地中选择Module相应的aar文件(建议选择release版本的)

这里写图片描述

4:finish完成

5:相应的目录结构如下:
这里写图片描述

6:同样需要在build.gradle中进行依赖,完成使用


Methods two :import library

以library的方式进行引入,类似于.jar文件。

step1:将aar文件复制后放入到libs文件夹下

step2:之后需要在build.gradle中进行相应的引用,格式如下

android{

    //引入aar类型文件的配置
        repositories {
            flatDir {
                dirs 'libs'
            }
    }
}

step3:在dependencies{}中进行依赖

compile (name: '引入aar文件的名字', ext: 'aar')

step4:完成,进行使用


至此,关于module的一些基本使用已经完成,另外:

androidstudio引入Module的若干问题汇总


将自己的module上传至远程仓库并进行使用

在androidstudio的开发中,应用最多的也是进行依赖远程仓库的文件

example:

compile 'com.android.support:support-v4:23.4.0'

所以在compile中的相关引用解释:由三部分组成

  1. GROUP_ID: —->com.android.support
  2. ARTIFACT_ID: —->support-v4
  3. VERSION:—->23.4.0

所以如何将自己的module放置在远程仓库 jcenter 或者 mavenCentral 中,来进行简单有效的应用呢?

一下两篇是我在学习这部分的相关文章,感谢前辈们的辛苦。

一步一步教你在JCenter发布开源库

如何使用Android Studio把自己的Android library分享到jCenter和Maven Central

那么下面我将自己的相关开发过程也做一个整理,尽量使其简单。

1.创建代码仓库

step1:登陆至bintray官网注册自己的账号

step2:注册界面如下

注册界面

step3:创建之后进入如下界面

这里写图片描述

点击Add New Repository 创建自己的仓库

step3:相应的界面如下:

创建远程仓库

step4:创建完成后,你的相应界面如下,此时自己的相关maven仓库已经建立完成

仓库创建完成


2.在主项目中build.gradle 中添加依赖插件

buildscript {
    repositories {
        ···
    }
    dependencies {
         ···
        //Maven和Jfrog Bintray的依赖插件:

        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7'
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
    }
}

添加上面两行代码。

对于插件的依赖,可以去网上查看最新版本
Maven:https://github.com/dcendents/android-maven-gradle-plugin
Jfrog Bintray:https://github.com/bintray/gradle-bintray-plugin

3.在modlue中添加如下的相关代码

修改以及添加

step1:在上面先添加如下这两行代码

//添加这两行
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'

step2:在该文件中dependencis后面添加如下代码

//项目主页:也就是在 git的主页
def siteUrl = 'https://github.com/wedfrendwang/wedlibrary'
//项目的git地址 
def gitUrl = 'https://github.com/wedfrendwang/wedlibrary.git'

//发布到JCenter上的项目名字      这个相当于 ----> ARTIFACT_ID
def libName = "baselibrary"

//发布到组织名称名字,必须填写    这个相当于---->GROUP_ID
group = "com.wendfrend"
// 版本号,下次更新是只需要更改版本号即可
version = "1.0.0"            这个相当于---->VERSION

//上面配置后上传至JCenter后的编译路径是这样的: compile 'com.wendfrend:baselibrary:1.0.0'

//生成源文件
task sourcesJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier = 'sources'
}

//生成Javadoc文档
task javadoc(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}

//文档打包成jar
task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

//拷贝javadoc文件
task copyDoc(type: Copy) {
    from "${buildDir}/docs/"
    into "docs"
}

//上传到JCenter所需要的源码文件
artifacts {
    archives javadocJar
    archives sourcesJar
}

// 配置maven库,生成POM.xml文件
install {
    repositories.mavenInstaller {
        // This generates POM.xml with proper parameters
        pom {
            project {
                packaging 'aar'
                //项目描述,随意填
                name 'A colorful circle view with text.'
                url siteUrl
                licenses {
                    license {
                        //开源协议
                        name 'The Apache Software License, Version 2.0'
                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    }
                }
                developers {
                    developer {
                        //开发者的个人信息
                        id 'wedfrendwang'
                        name 'wedfrendwang'
                        email 'wedfrend@yeah.net'
                    }
                }
                scm {
                    connection gitUrl
                    developerConnection gitUrl
                    url siteUrl
                }
            }
        }
    }
}

//上传到JCenter
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())

bintray {
    user = properties.getProperty("bintray.user")    //读取 local.properties 文件里面的 bintray.user
    key = properties.getProperty("bintray.apikey")   //读取 local.properties 文件里面的 bintray.apikey
    configurations = ['archives']
    pkg {
        //这里的repo值必须要和你创建Maven仓库的时候的名字一样
        repo = "maven"
        //发布到JCenter上的项目名字
        name = libName
        //项目描述
        desc = 'A colorful circle view with text.'
        websiteUrl = siteUrl
        vcsUrl = gitUrl
        licenses = ["Apache-2.0"]
        publish = true
    }
}

javadoc {
    options{
        //如果你的项目里面有中文注释的话,必须将格式设置为UTF-8,不然会出现乱码
        encoding "UTF-8"
        charSet 'UTF-8'
        author true
        version true
        links "http://docs.oracle.com/javase/7/docs/api"
    }
}

以上这些代码的功能即上传至你在的bintray中的maven仓库。需要注意的问题如下:

1: 里面涉及到关于github的一些设置,比如siteUrl以及gitUrl的使用,对于这两个值如果不想进行使用,在后面有使用到的内容下都将器删除掉

2:如果想使用git的项目地址,可以参考我的另一篇文章git代码托管的方法

3: 重要的一部分为书写自己的bintray中的相关配置(如下)

注意的重要代码

4:相应的信息所在位置在你刚刚注册过的bintray中可以找到,如下

apikey在你的个人信息中可以查看:
这里写图片描述
点击API keykey可以查看个人秘钥,默认是自己的密码。可以点击查看

user,maven如图
这里写图片描述

5:相应的值得到之后,androidstudio的安全机制中,比较隐私的数据会存放至当前项目的local.properties中,所以我们将user和apikey放置在其中,如图:

这里写图片描述

Done,至此目前我们代码中的相关功能已经完成。

6:上传自己的library至bintray。

  1. 打开terminal
  2. 输入 gradlew install, 出现成功之后 会出现 SUCCESSFUL
  3. 接着在输入 gradlew bintrayUpload
  4. 成功之后便可在bintray的仓库中查看自己的library

    如图:
    上传成功

7:点击自己的library可以查看详细信息。目前我们也只是将自己的module上传至bintray并没有上传至公共的Jcenter仓库,但是目前我们也可以使用在bintray仓库的library。

7.1:新建一个android project
7.2:在project中build.gradle添加maven的地址,如下:

allprojects {
    repositories {
        jcenter()
        maven {
            url 'https://dl.bintray.com/wedfrendwang/maven'
        }
    }
}

该地址会在的的bintray中的右上角
maven网址

然后在你的app中的build.gradle中进行compile引用即可

引用时的相关数据可以在bintray中查看

这里写图片描述

8:最后一步讲library上传至Jcenter仓库

点击自己的仓库项目,在右下角有一个link to 点击 Add to Jcenter

然后进入界面 点击 send 便OK 了。

等待审核,然后就可以被公开使用。

注:当你的jar被审核通过, bintray会发送一个邮件至你注册的邮箱,那么你只需要点击就好,之后你的jar就可以被全球开发者使用了。

当然你也可以直接在浏览器进行类似如下访问

http://jcenter.bintray.com/com/wendfrend/wedlibrary/1.0.0/

说明:
http://jcenter.bintray.com ————> 是bintray的官网网址
/com/wendfrend/ ———–> 是你项目的 group id
wedlibrary ————> 是你项目的artifactId
1.0.0 ————> 版本


也许我们的资格,能力还没有达到一定的境界,没法写出大神一样的 开源框架,开源插件,应用起来可以满足绝大多数的开发者,但是了解这种流程对于开发的帮助是很大的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值