Android中aar的使用

一、概述

 这篇文章主要讲解aar的生成、使用和打包。

二、aar的生成与使用

1、aar的生成,进入android studio点击上方的build,执行第2步(整个工程)或者第3步(单个工程)。

这里写图片描述
2、 aar的使用
这里主要讲解aar在library 模块中的使用
1. 首先在app中的bulid.gradle中加入如下:

//aar资源路径
repositories {
    flatDir {
        dirs 'libs', '../aars', '../模块名/libs'
    }
}

在app的build.gradle中也要加入文件的指向,可加入各个模块,其中用逗号隔开,模块名就是你的modlename。

2.模块的正确引入:

repositories {
    flatDir {
        dirs 'libs'
    }
}
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile(name: 'aar名字', ext: 'aar')
}

3.aar的依赖性
模块A,B,C
如果B依赖C并且是远程依赖,那么A依赖B的时候,C对于A是不可见的,所以在aar打包的过程中,如果子模块引用了aar,就必须手动把引用的aar添加到下面的build_aar.gradle文件中。
如果我们需要A中使用C,那么可以在A中依赖C。

二、aar打包

1、 先在工程目录下新建一个build_aar.gradle文件,然后在app的build.gradle中加入如下:

apply from: '../build_aar.gradle'

2、 修该aar的生成名称,以便区分aar

//设置输出aar文件名称
    libraryVariants.all { variant ->
        variant.outputs.all {
            outputFileName = moduleName + rootProject.PreVersion + '.aar'
        }
    }

moduleName指的是模块名称,PreVersion指的是类型时间戳一样的唯一标示,如-20180116134700,定义在根目录的build_precfg.gradle文件中,String preVersion = “-20180116134700”(模块和组件所用到的版本),使用时需要在工程的build.gradle中加入apply from: ‘build_precfg.gradle’。
3、 迁移子module下所有aar到主工程的aar目录,这个目录在aar的使用中已经引入到主工程中。

 tasks.create(name: 'aar') << {
    rootProject
            .getSubprojects()
            .each {
        def buildPath = it.getBuildDir().absolutePath
        copy {
            from(buildPath + '/outputs/aar/') {
                include '*.aar'
            }
            //拷贝aar文件路径到父级目录MXU4_Android/aars下
            into rootProject.aarsDir
        }
    }
}

4、 只需要将aar目录下的aar引入到build_aar.gradle中就能实现aar的打包了,如下:

dependencies {
    compile(name: 'CompBase' + PreVersion, ext: 'aar')
}

5.最后执行gradle aR命令就可打包

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值