Android Studio中对一个库进行生成操作时将会同时生成*.jar与*.aar文件。
存储位置:
*.jar:build/intermediates/bundles/debug(release)/classes.jar
*.aar:build/outputs/aar/app-debug.aar
两者区别:
*.jar:只包含了class文件与清单文件,不包含资源文件,如图片等所有res中的文件。
*.aar:包含所有资源,class以及res资源文件全部包含
如果你只是一个简单的类库那么使用生成的*.jar文件即可;如果你的是一个UI库,包含一些自己写的控件布局文件以及字体等资源文件那么就只能使用*.aar。
生成方法:
修改build.gradle文件
1.apply plugin:'com.android.application' -> apply plugin:'com.android.library'
2.注释 applicationId "......"
defaultConfig {
// applicationId "com.xinyunlian.reglogin"
}
3.注释AndroidManifest.xml中的内容,只保留下面的部分(否则安装后会出现两个图标)。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="......" >
</manifest>
重新编译后,就会在上面相应的目录生成.jar和.aar。
使用方法:
1. *.jar:拷贝到:libs目录,eclipse直接导入即可,AndroidStudio项目中添加:
dependencies {
compile(name:'genius', ext:'aar')
}
重新编译一次项目既可完成加载。
2. 将生成的.aar文件,拷贝到libs目录下,然后修改build.gradle文件
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
......
compile (name:'...', ext:'aar')
}
注意:1. 确保.aar中所有资源文件(如activity_main.xml、drawable等等)和Activity的名称与调用者不一样。
2. 如果想在调用者中启动.aar中的Activity,需要在调用者AndroidManifest.xml中声明.aar的Activity。