Android依赖项目打包aar较优方法

据说打成aar包后,能减少编译时间。然后尝试了一下,感觉提升不大!不过还是记录一下打包过程,免得忘了。毕竟这种方法,是本人思考后,想到的比较好的方法。不用去复制aar包了。

限制条件:需要将被依赖的项目引用到app所在的工程下。本人的习惯,喜欢直接引用项目,方便随时修改代码。

  • 应用项目。在app所在工程的settings.gradle中添加
include ':yourLibrary'
// 此处本人使用相对路径,库所在工程与app所在工程在同一级目录下
project(':yourLibrary').projectDir = new File('../LibProject/yourLibrary')
  • 配置maven。在app所在工程(即项目根目录)的build.gradle中配置
buildscript {
    repositories {
        /*jcenter()*/
        maven{ url 'http://maven.aliyun.com/nexus/content/groups/public'}
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
        /* maven 添加代码*/
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
    }
}
......
  • 依赖项目的配置。在依赖的项目的build.gradle中添加配置
//apply plugin: 'com.android.library'apply plugin: 'java'
apply plugin: 'groovy'
apply plugin: 'maven'
android {
 ......
}
dependencies {
  ......
}
// 下面为添加的配置, 根据具体情况修改group和version,不建议修改uploadArchives中的内容
group = 'com.sckiven.libraryName'
version = '1.0'
uploadArchives {
    repositories {
        flatDir {
            name 'pcLocal'
            dir "$parent.rootDir/maven/aars"
        }
    }
}
  • 现在可以运行gradle任务:uploadArchives, 该任务在AndroidStudio的Gradle任务窗口,相应引用库(即上边的yourLibrary)下的upload目录下,双击可执行。
  • 配置app项目。在app项目的build.gradle中添加配置
apply plugin: 'com.android.library'
android {
 ......
}
// 开始添加
repositories {
    flatDir {
        dirs "$parent.rootDir/maven/aars"
    }
}
dependencies {
  ......
// 'libraryName-1.0':与上文'com.sckiven.libraryName'中的不一样。可在工程所在目录下maven/aars中找到aar文件,将名称复制过来就行。
compile(name: 'libraryName-1.0', ext: 'aar')
}
  • 两处dirs的目录可以修改成直接目录,这样的话就可以实现跨项目打包调用aar了,dirs就是个本地maven库吧

你可能感兴趣的:(Android依赖项目打包aar较优方法)