关于android:Android如何生成本地或者远程aar

59次阅读

共计 2542 个字符,预计需要花费 7 分钟才能阅读完成。

在一些非凡的场合,比方源码的窃密,sdk 的提供和应用,都会把肯定的性能逻辑抽取成一个 aar,提供至须要的人,在 Android 的开发中,这种形式司空见惯,只闻应用形式,不知外部实现,加深了源码的保护措施,又使得性能能够失常开发,绝对于一些公司有着外包人员的协同开发,一些次要的性能,不想泄露,那么就能够采取这种形式。

aar 的形式,每次更新后,只须要动静的扭转版本号,就能够实现新增的性能和逻辑,和主线的性能放弃拆散而又牵扯分割,这种形式的应用,集成简略,在乎的是后果,而非实现的过程,最重要的是对于源码的一个爱护机制;Android 中的 aar 次要是针对于 Android Library 而言的,能够简略的了解为是对 Android Library 的打包,这个包的格局既为.aar,是一个二进制归档文件,蕴含所有资源,class 以及 res 资源文件。

本地 aar 生成以及应用

第一步:创立一个 Library(因为 aar 的生成是以 Library 的模式打包),并创立.gralde 文件, 存储门路本人定义,文件名字也本人定义,如下图:

第二步,在已创立的.gradle 文件里书写对应生成 aar 的代码,须要留神,每次更新代码,版本号须要对应的降级,打出 aar 的门路也须要本人来定义,这里我生成到了 E 盘下:

apply plugin: 'maven'
ext {
    PUBLISH_GROUP_ID = 'com.abner'// 组 id
    PUBLISH_ARTIFACT_ID = 'maven'// 具体的我的项目 id
    PUBLISH_VERSION = '1.0.1'// 版本号
}
//maven- 门路
uploadArchives {
    repositories.mavenDeployer {repository(url: "file:///E:\\github\\mavenaddress")
        pom.project {
            groupId project.PUBLISH_GROUP_ID
            artifactId project.PUBLISH_ARTIFACT_ID
            version project.PUBLISH_VERSION
        }
    }
}

// 以下代码会生成 jar 包源文件,如果是不开源码,请不要输出这段
//aar 包内蕴含正文
task androidSourcesJar(type: Jar) {
    classifier = 'sources'
    from android.sourceSets.main.java.sourceFiles
}

artifacts {archives androidSourcesJar}

第三步,在 Library 里的 build.gradle,进行引入:

以上三步实现之后,点击 Android studio 右侧的 Gradle, 找到对应的 Library 下的 Tasks 下的 upload,双击 uploadArchives
就会在第二步中本人定义的门路下打出本人的 aar。

生成的 aar 文件:

复制生成的 aar,就能够发送给他人进行依赖应用了,这样他人就能够调用你 Library 下所提供的业务逻辑了,具体应用,复制 aar 到 libs 下,而后须要应用的 module 下加上如下图的引入即可:

以上的本地 aar 就生成了,须要留神的是,对于 Android studio 的版本的降级,可能遇到右侧的 uploadArchives 没有显示的问题,大家能够依照以下形式,解决一下:

比方咱们本地生成了 aar,不想每次更改代码后,就要替换 aar,咱们就能够采取以下的形式,进行本地引入,当前,只须要改版本号即可:

第一步,在根目录的 build.gradle 文件下进行依赖咱们本地的门路,也就是上边咱们生成 aar 文件的中央。

第二步,在须要的 module 里进行引入,这样当前 aar 有更改,咱们只需更改版本号即可:

近程 aar 生成以及应用

以上,咱们只能本人本地应用,或者把 aar 复制给他人应用,一旦更改频率很高,每次的更换是很麻烦了,能不能让别人应用的时候,如果更改了,也只需更改版本号就能够了呢,答案必须能够,大家能够抉择任何一个代码托管平台进行实现,这里我用 gitee 也就是码云来作为例子演示,说到这里,为了保障源码的相对平安,其实个别在公司都有本人的私服,上传至私服即可。

通过本地的形式,咱们曾经在本地生成了对应的 aar 文件,改为近程,无非就是把对应的 aar 文件上传至对应的仓库地址即可。

1、无仓库地址:

须要在 giee 上创立本人的仓库,失去仓库地址:

进入本地的 maven 目录也就是 aar 目录 ,顺次执行下边 git 命令, 须要留神,关联本人的近程地址:

git init
git add .
git commit -m "first commit"
git remote add origin https://gitee.com/AbnerAndroid/android-maven.git
git push -u origin master

相干命令正文:

git init                            // 初始化仓库

git add .                         // 增加到本地暂存区   或用  git add   (文件 name)

git commit -m“first commit”// 提交到本地仓库

git remote add origin    近程仓库地址       // 增加近程仓库 

git pull origin master                                 // 把近程仓库 master 分支拉取到本地仓库 master 分支

git push -u origin master                           // 把本地仓库的 master 分支推送到近程仓库 master 分支 

2、已有仓库地址,须要留神,关联本人的近程地址:

git remote add origin https://gitee.com/AbnerAndroid/android-maven.git
git push -u origin master

把本地生成的 aar 推到近程之后,如下图:

点开之后

具体调用就和本地的其余我的项目调用相似了,如下图

第一步,在根目录的 build.gradle 文件下进行依赖咱们上传的仓库门路,以 raw/master 结尾:

第二步,在须要的 module 里进行引入,这样当前 aar 有更改,咱们只需更改版本号即可:

以上就是简略的本地和近程 aar 的生成和应用,前边说过,公司个别外部有本人的私服,失常都是上传到本人的私服中,当然如果是本人开源,或者公司没有要求,那么咱们上传到哪都是可行的。

正文完
 0