Android-AAR

·在软件工程中,分支是最基本的设计原理,就如同现实中的砖、瓦、钢筋、水泥一样,模块化、组件化的分工,让我们整个软件世界变得井井有序,丰富多彩

 Java Jar

 在java开发中,添加组件简单的以添加jar文件依赖为途径,jar有两个含义:

  • jar文件格式: java Archive 就是zip文件格式,文件后缀是jar,包含了java class metadata 资源(文本、图片等)
  • java  archive tool:JDK中的工具,用来生成jar包文件

 jar在Android开发中的不足

  在Android应用资源中,java sourse Resouse以及苏旭的so文件和jar包,用jar格式可以很好的处理 java Source但对于目录比较复杂的Android Res目录,二进制so文件 jar显得乏力,当你收到一个第三方SDK zip包,要添加到自己的项目中,解压后是一个jar包和一堆文件,不停的复制粘贴甚至解决冲突的时候,心里肯定不满意这种组件发布方式

 aar 

什么是aar

为了解决Android开发中组件引用的问题,引入aar格式。也是简单的zip格式。
定义:The ‘aar’ bundle is the binary distribution of an Android Library Project.
Zip包中的内容有:

    • /AndroidManifest.xml (mandatory)
    • /classes.jar (mandatory)
    • /res/ (mandatory)
    • /R.txt (mandatory)
    • /assets/ (optional)
    • /libs/*.jar (optional)
    • /jni//*.so (optional)
    • /proguard.txt (optional)

/lint.jar (optional)
其中,R.txt是aapt –output-text-symbols命令的输出。

生成aar 

  1.建立一个module

  在其build中配置

  引入

apply plugin: 'maven'
脚本如下
uploadArchives{
repositories {
mavenDeployer {
repository(url: "file://localhost/" + "D:/testAAR"+ "/extras/")//生产地址
       //repository(url: "file://localhost/" + System.getenv("PATH_HOME") + "/extras/")//建议PATH_HOME环境变量配置 有利于协同开发

pom.version = '1.0'
pom.groupId = 'com.muheda'
pom.artifactId = 'testaar' //生成目录为com.muheda.testaar.1.0
 

}
}
}

 然后在Terminal输入命令gradlew uploadArchives 成功则在对应地址生成文件 

  在另一个项目引用

  配置根本目build

  

allprojects {
repositories {
google()
jcenter()
maven {
url "file:///" + "D:/testAAR" + "/extras/"//为文件所在地址
}

}
}

项目build添加依赖
api('com.muheda:testaar:1.0')

注意:两个module相互依赖 大依赖的module加不进去被依赖module的功能 需要先把被依赖的打成aar在依赖的module引用 然后打依赖的aar则功能全有

给aar包的时候全给com.muheda.testaar(若aar里面有三方的引用 咋不能只发.aar)

猜你喜欢

转载自www.cnblogs.com/zhaozhengwu/p/11264973.html
今日推荐