当前位置:首页 > 谈天说地 > 正文内容

Android开发之AAR文件的生成与使用步骤

34资源网2022年07月29日 10:11406

前言

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

一、aar是什么?

aar一种压缩格式(打包的library),相当于android里面的jar包,不过里面可以包含android相关的一些资源,比如说:layout, drawable等res资源。

二、使用步骤

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

1.生成aar

首先我们创建一个android project,然后在里面new一个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插件的,但是现在新版本的as里已经使用不了了,大家要注意!maven-publish的更多使用,可以去官网了解一下(https://developer.android.com/studio/build/maven-publish-plugin?hl=zh-cn#kts)。其中debug表示是一个发布渠道,你可以取任何名字,而在这个闭包中的groupid,artifactid,version分别表示公司的域名,项目名称以及项目版本号。分别对应生成的aar名称中的这些。

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

如果没有tasks文件,需要到preference里面去,把gradle设置一下,去掉这个勾勾就好了。

最后在我们指定的路径里可以看到我们已经打包好的aar文件了,如果我们需要打包到远程代码仓库上,可以将本地的生成好的aar使用git,push上去,或者在设置文件输出位置的时候,直接设置为远程代码仓库的位置。

2.aar使用

接下来,介绍一下如何在其他工程中使用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(好像只有新版本的as里面有这些问题,老版本没有)。

这时候就可以去我们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里面可以看到,我们的函数调用成功了!

附:注意事项

1.build–>make moudle app 不同as版本会生成app-debug.aar,用作调试使用看看log日志啥的。

2.gradle界面-点击当前项目-点击tasks-点击build-双击assemblerelease生成一个app-release.aar提供开发者使用。

3. 主项目需要依赖aar中所依赖的远程库,否则会出现classnotfound异常

这里也许某个依赖库你们的版本会发生冲突,这就需要你们协调了

4.资源命名最好统统加上你的项目名字前缀,比如图片资源、string、color、dimens、layout等等,反正res目录下所有文件最好都使用统一的加前缀命名,防止跟宿主app下的资源重复,因为aar引用跟源码引用起到的效果一样一样的,所有很容易出现资源重复引用的问题,所以加上前缀非常有必要。

5.如果该aar包里面有微信支付,分享等第三方库,你要在主工程中使用,要记得在gradle里面替换applicationid,或者用你主工程的包名和key去获取第三方操作的key和id

以分享为例,如果你清单文件中的分享key与主项目中的build gradle文件中的分享key不同的话,就会包清单文件异常的。

6.butterknife需要统一用8.4.0以上的版本,不然报错 ;依我的建议,最好不用,否则有你好受的哈!

7. 如果在aar的myappliction里面使用了类的管理器,那么在打包成aar的时候需要将代码抽出来做个独立的类管理器,记住一点,打包成aar之后所有和application有关的东西都要检查替换,避免出现空指针异常。

8. aar模块用butterknife需要把资源r改为r2(批量替换)

9. 布局文件不要重名,否则会报找不到id的异常

总结

到此这篇关于android开发之aar文件的生成与使用步骤的文章就介绍到这了,更多相关aar文件生成使用内容请搜索萬仟网以前的文章或继续浏览下面的相关文章希望大家以后多多支持萬仟网!

看完文章,还可以用支付宝扫描下面的二维码领取一个支付宝红包,目前可领1-88元不等

支付宝红包二维码

除了扫码可以领取之外,大家还可以(复制 720087999 打开✔支付宝✔去搜索, h`o`n.g.包哪里来,动动手指就能领)。

看下图所示是好多参与这次活动领取红包的朋友:

支付宝红包

扫描二维码推送至手机访问。

版权声明:本文由34楼发布,如需转载请注明出处。

本文链接:https://www.34l.com/post/20001.html

分享给朋友:

相关文章

女装加盟哪个品牌可靠?艾丽哲这个牌子不错哦
女装加盟哪个品牌可靠?艾丽哲这个牌子不错哦

女装行业一直发展都不错,女装加盟哪个品牌可靠?在众多的女装品牌当中,艾丽哲女装凭借优良的口碑和超高的人气,在行业当中占有一定的优势,是好的,当中非常可靠的品牌,在激烈的市场当中,凭借超高的实力,得到了无数加盟商的认可,赚钱轻松,发展潜力大,...

适合年轻人创业项目,投资小又赚钱多的项目推荐
适合年轻人创业项目,投资小又赚钱多的项目推荐

社会在发展,科技在更新,生活也在发生着翻天覆地的变化。但是,唯一不变的是,年轻人创业的心,一直都没有变过。每个时代都会有很多想创业的年轻人,只是每个时代的年轻人创业项目都有所不同,那么,今天我们就说说适合现在年轻人创业的项目。下面小编整理了...

女人奋斗励志语录分享10句
女人奋斗励志语录分享10句

1、即便无人喝彩,也要守住自己的人生。每一次失败,都是成功的伏笔;每一次考验,都有一份收获;每一次泪水,都有一次醒悟;每一次磨难,都有生命的财富。每一次伤痛,都是成长的支柱。2、不要沮丧,不必惊慌,做努力爬的蜗牛或坚持飞的笨鸟,我们试着长大...

经典语录20句分享:这城市风很大,孤独的人总是晚回家
经典语录20句分享:这城市风很大,孤独的人总是晚回家

1、不怕变成自己厌恶的人,我怕的是,过的还不如他们。2、无论受了多少委屈。我只会把它憋在心里。不是不想说,只是不知道该怎么说,能和谁说。3、思念很长,所以一日如两年,时间很短,所以两年如一日。4、你是不是又在苦心翻找一句话,只为给那个人看。...

卡斯数据是干什么的(免费大数据查询平台)
卡斯数据是干什么的(免费大数据查询平台)

短视频/直播电商不负众望,成为2020年品牌营销最热关键词。G2格局下两大顶流——抖音和快手,也自然吸引了各方关注。相较抖音而言,快手独特的老铁氛围像自带结界,不懂“规矩”的内容创作者和品牌方在这里寸步难行。 究竟快手直播电商现状如何?什...

华为p40pro参数配置(p40与p40pro参数对比)
华为p40pro参数配置(p40与p40pro参数对比)

据网友反馈,华为 P40/Pro 系列开始推送鸿蒙 HarmonyOS2.0.0.1 66 (C00E160R3P6),大小 1.26 GB。 IT之家获悉,本次更新相机将新增多机位拍摄模式,通过变换机位拍摄,获得镜头更丰富的精彩视频和...