Android Studio 编译速度优化及aar引用优化
Android studio配置优化:
aar文件编译
1、将打包的aar放到libs目录, 如果引用较多,可以在公共gradle脚本中使用如下代码:
buildTypes {
...
release {
...
libraryVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile
.name.endsWith('aar')) {
def fileName = "${**project.name**}.aar"
output.outputFile = new File("aar文件保存路径",
fileName)
}
}
}
}
}
注意: aar文件保存路径 只能是项目中的路径; 也可以使用meven仓库。 project.name 可以自动识别Lib的名称。
2、在你主程序的Module(没改的话一般是app)的build.gradle文件增加:
allprojects {
repositories {
jcenter()
flatDir { dirs 'libs' } //定义本地库目录,引用aar用到
}
}
注意:jcenter()不是引用aar必须的,得看dependencies{}中依赖的第三方库是否需要该方式。
3、dependencies{}中添加aar的引用,如果打包aar的Module的build.gradle文件中也依赖第三方库,则必须在你主程序的Module的build.gradle文件中增加依赖,否则即使编译通过,在运行时也会提示找不到库中的类,例如:
dependencies {
compile fileTree(include: '*.jar', dir: 'libs')
**compile(name:'elibrary', ext:'aar')
compile(name:'Bulletin', ext:'aar')
compile(name:'DealHelper', ext:'aar')
compile(name:'EventQuery', ext:'aar')**
//对比直接编译的下方代码:
// compile project(':elibrary')
// compile project(':Bulletin')
// compile project(':DealHelper')
// compile project(':EventQuery')
使用是注意事项:
编译时可能会有缓存错误,使用clean即可解决;
生成aar需要编译各自的Lib;生成之后,直接编译主app即可。
优点提升:
1. 占用空间:Module总共200M,打包成aar后总共不到500KB;
2. 编译时间:15个引用lib,不使用aar第一次需要10分钟或更长时间,之后5分钟;使用aar后,第一次5~6分钟,之后2分钟左右。