问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Android开发入门:AAR文件的生成与使用详解

创作时间:
作者:
@小白创作中心

Android开发入门:AAR文件的生成与使用详解

引用
CSDN
1.
https://m.blog.csdn.net/fuhanghang/article/details/140016565

前言

现在App开发模块化技术已是常态,有很多的功能模块都被抽出来供给开发者使用。为了开发者使用,这些模块都会被打包,就和java中的库一样。在java中,一个模块可以被打包为Jar包,而在Android中,不仅仅有java文件,还有一些其他的资源文件,所以就出现了AAR文件(一种打包格式),本文通过一个demo来介绍如何打包一个Library文件,生成AAR。

一、AAR是什么?

AAR是一种压缩格式(打包的Library),相当于Android里面的Jar包,不过里面可以包含Android相关的一些资源,比如说:layout, drawable等res资源。

二、使用步骤

包括生成和使用两大部分,话不多说,让我们开始吧。

1.生成AAR

首先创建一个Android Project,然后在里面新建一个Library,这里我们就使用它默认的名字。

然后就会生成这样的一个Library,我们的目标是在这个Library中实现一些功能,然后打包成AAR文件,可以提供给其他工程调用。

在这个Library中,我们创建一个名为DoSomething的类,然后里面有一个printSomething的方法,这里使用Kotlin语言。

package com.example.mylibrary
class DoSomething {
    public fun printSomething(){
        println("你好,你想要输出一些东西!")
    }
}

接下来开始打包。在当前Library目录下的build.gradle文件中,添加如下代码。也可以创建一个独立的*.gradle文件,然后在build.gradle中调用(apply {‘*.gradle’})。

apply plugin: 'maven-publish'
afterEvaluate {
    publishing {
        publications {
            debug(MavenPublication) {
                // Applies the component for the debug build variant.
                from components.debug
                groupId = 'com.gloomy'
                artifactId = 'myLibrary'
                version = '1.0.0'
            }
        }
        publishing {
            repositories {
                maven {
                    // change to point to your repo, e.g. http://my.org/repo
                    url = "file:///Users\\******\\Desktop\\AndroidStudy\\AAR"
                }
            }
        }
    }
}

在以上代码中,使用了maven-publish插件。之前很多教程使用maven插件,但新版本的Android Studio已经不再支持。maven-publish的更多使用,可以参考官方文档(https://developer.android.com/studio/build/maven-publish-plugin?hl=zh-cn#kts)。其中debug表示是一个发布渠道,你可以取任何名字,而在这个闭包中的groupId,artifactId,version分别表示公司的域名,项目名称以及项目版本号。分别对应生成的aar名称中的这些。

然后再往下,repositories闭包里面写的是我们想要输出AAR文件的位置,这里我们先生成到本地。同步Gradle配置,点开右侧的Gradle文件夹,双击publish就开始生成AAR文件。

如果没有Tasks文件,需要到Preference中设置Gradle,去掉相关勾选。

最后在指定的路径里可以看到已经打包好的AAR文件。如果需要打包到远程代码仓库,可以将本地的AAR文件使用git push到远程仓库,或者直接设置远程仓库位置。

2.AAR使用

接下来介绍如何在其他工程中使用AAR文件。这里介绍一种灵活性较高的方式。首先在根目录下的build.gradle中添加如下代码,其中url是存放AAR文件的位置,可以是本地或远程代码仓库。

buildscript {
    repositories {
        google()
        mavenCentral()
        maven {url "file:///Users\\*****\\Desktop\\AndroidStudy\\AAR"}
    }
}
allprojects {
    repositories {
        google()
        mavenCentral()
        maven {url "file://Users\\*****\\Desktop\\AndroidStudy\\AAR"}
    }
}

如果Synchronize失败,需要检查settings.gradle文件,确保两边的代码仓库设置一致,同时将repositoriesMode设置为RepositoriesMode.PREFER_SETTINGS(新版本Android Studio可能需要这样做)。

然后在app模块的build.gradle中声明依赖,依赖名称由groupId、artifactId和version组成。如果在库中进行了修改,只需更新版本号即可。

implementation 'com.gloomy:myLibrary:1.0.0'

声明好依赖后,在MainActivity中测试:

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val d = DoSomething()
        d.printSomething()
    }
}

最后在Logcat中可以看到函数调用成功。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号