使用Android Studio对工程进行编译后,会同时生成jar与aar文件。
其位置分别位于:
jar: /build/intermediates/bundles/debug(release)/classes.jar
aar: /build/outputs/aar/libraryname.aar
两者的区别:
jar 中只包含了class文件与清单文件。
aar中除了包含jar中的class文件还包含工程中使用的所有资源,class及res资源文件全部包含。
如果只是一个简单的类库那么使用生成的*.jar文件即可;如果你的是一个UI库,包含一些自己写的控件布局文件以及字体等资源文件那么就只能使用*.aar文件。
使用方式:
jar 拷贝到 libs 目录,并在gradle文件中添加
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
}
aar 有两种方式:
1.本地使用
拷贝到 libs目录,并在gradle文件中添加
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
compile(name:'genius', ext:'aar')
}
2.网络加载
将aar发布到mavenCentral仓库,在gradle文件中添加
repositories {
maven {
url "http://maven.dev.sh.ctripcorp.com:8081/nexus/content/groups/public"
}
}
dependencies {
classpath 'net.sf.proguard:proguard-gradle:5.2.1'
}
多层Module依赖本地AAR
Android Studio多层Module依赖本地AAR,在编译的时候出发生错误,找不到AAR(ModuleA libs中有c.aar,ModuleB依赖ModuleA)
此时需要在ModuleB的build.gradle中添加
repositories {
flatDir {
dirs '../ModuleA/libs','libs'
}
}
同时在dependencies中添加aar名称:
compile(name:'c', ext:'aar')