无论是用Eclipse还是用Android Studio做android开发,都会接触到jar包,全称应该是:Java Archive,即java归档文件。
在用AS的过程中,你会发现有aar这么个东西,经查阅资料了解到,aar是android归档文件,我想全称应该是:Android Archive。
他们两个有什么区别呢?
个人理解:
jar是java文件编译后的class文件压缩包。
aar是android module中所有resource文件和编译后的java文件的总压缩包。
aar包是Android Studio下打包android工程中src、res、lib后生成的aar文件,aar包导入其他android studio 工程后,其他工程可以方便引用源码和资源文件
区别在于:aar除了包含class文件,还包含resource文件。
1. 如何生成aar包
如果AS项目中没有Module,需要先自己新建一个Module。
依次选择File–New–New Module
选择选择Android Library,点击“Next”。
修改Application/library name为工程名称,Module name需要自己定义,这里暂时用mylibrary,包名可以点击“Edit”进行修改。
设置完成后,点击“Finish”。这样一个module就新建完毕了。
在新建的module的包内新建一个类文件写入你想要做的操作。
接下来就可以生成aar包了
方法1:
Rebuild Project完之后在module内的“build”—“output”—“aar”中找到我们要的aar包
aar包就生成了,生成的是debug版本的aar,如果要生成release版本的,见方法2。
方法2:
选择AS右侧“Gradle”—选择需要生成aar的Module—“build”—“assembleRelease”,等待编译完成后,在Module相应的目录中找到aar。
2. 如何向工程中添加aar包
将生成的包拷贝到Android工程下的app/libs下
配置build.gradle文件
//使用Flat Directory仓库,这意味着系统将在lib目录下搜索依赖
repositories {
flatDir {
dirs'libs'
}
}
dependencies {
implementation fileTree (include: ['*.jar', '*.aar'], dir: 'libs')
testImplementation 'junit:junit:4.12'
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation (name:'mylibrary-debug',ext:'aar')
}
然后同步一下gradle。
到这一步其实我们的aar包已经在工程的扩展包里了。
现在在Android项目中使用aar包中的print()方法。
运行之后没有报错,添加完毕!