在安卓开发中,我们常常需如果要把一些通用的代码打包成aar文件,以供其他开发者使用。这些通用的代码可能是自己编写的一些工具类,也可能是一些第三方库。本文将介绍如何打aar包。
首先,我们需要了解aar文件的结构。aar文件实际上是一个zip文件,包含了以下文件
1. classes.jar包含了Java代码的jar文件。
2. 安卓Manifest.xml包含了组件信息、权限声明等信息的安卓Manifest文件。
3. res包含了资源文件,如布局文件、图片等。
4. assets包含了一些原始文件,如文本文件、音频文件等。
5. R.txt包含了资源ID的定义。
6. proguard.txt包含了ProGuard混淆规则。
下一步,我们将介绍如何打aar包。
第一步创建安卓 Library项目
首先,我们需要创建一个安卓 Library项目。在安卓 Studio中,选择File -> New -> New Module,选择安卓 Library,然后填写相应的信息,如下图所示
创建完成后,我们可在项目的build.gradle文件中看到以下配置
```
apply plugin: 'com.安卓.library'
安卓 {
compileSdkVersion 28
defaultConfig {
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName 1.0
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-安卓.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
}
```
其中,apply plugin: 'com.安卓.library'表示这是一个安卓 Library项目,dependencies中的implementation fileTree(dir: 'libs', include: ['*.jar'])表示引入的jar包。
第二步编写代码并导出aar包
下一步,我们可在项目中编写我们需要打包的代码。在本例中,我们将编写一个工具类,提供一个方法用于将字符串转换成大写字母。
```
public class StringUtils {
public static String toUpperCase(String s) {
return s.toUpperCase();
}
}
```
下一步,我们可使用安卓 Studio自带的打包工具导出aar包。在项目中选择File -> New -> New Module,选择安卓 Library,然后选择Export to aar,如下图所示
点击Finish,即可导出aar包。此时,我们可在项目的build/outputs/aar目录下看到生成的aar文件。
第三步使用aar包
最后,我们可将生成的aar包作为依赖引入到其他项目中。在其他项目的build.gradle文件中添加以下配置
```
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
implementation(name: 'library', ext: 'aar')
}
```
其中,flatDir表示使用本地目录作为仓库,dirs 'libs'表示使用项目中的libs目录作为仓库,implementation(name: 'library', ext: 'aar')表示引入名为library的aar包。
至此,我们已经成功地打包了一个aar文件,并把它作为依赖引入到其他项目中。打aar包的原理就是将Java代码打包成jar文件,然后将资源文件和安卓Manifest文件和jar文件一起打包成zip文件,最终将zip文件的后缀改为aar。