jar和aar的区别及使用方法

使用Android Studio对工程进行编译后,会同时生成jar与aar文件
jar=java application resource
aar=android application resource

其位置分别位于:
jar:/build/intermediates/bundles/debug(release)/classes.jar
arr:/build/outputs/aar/libraryname.aar

两者的区别:
jar中只包含class文件与清单文件
aar中除了包含jar中class文件还包含工程中使用的所有资源,class及res资源文件全部包含。如果只是一个简单的类库那么使用生成的.jar文件即可;如果你的是一个UI库,包含一些自己写的控件布局文件以及字体等资源文件那么就只能使用.aar文件。

引用.jar方法:
1.将*.jar拷贝到app中的libs目录下
2.更改build.gradle配置文件
在studio新版本中会自动生成,所以只需直接拷贝.jar到lib目录下编译即可。

dependencies{
  compile fileTree(include:['*.jar'],dir:'libs')  
}

aar有两种方式:
第一种方式:引用本地.aar
1.将*.aar拷贝到app中的libs下
2.更改build.gradle配置文件

repositories{
  flatDir{
     dirs 'libs'
  }
}
dependencies{
  compile(name:'genius',ext:'aar')
}

值得注意的是:如果aar中也引用了第三方的lib,那么打包后的aar中是没有把这些三方库加入到aar中的,这样就需要在app中除了引用.aar外还要引用其中需要的其他第三方库。

第二种方式:网络加载
将aar发布到mavenCentral仓库,在gradle文件中添加

repositories{
  maven{
    url "http://maven.dev.sh.ctripcorp.com:8801/nexus/content/groups/public"
  }
}
dependencies {
    classpath 'net.sf.proguard:proguard-gradle:5.2.1'
}

多层Module依赖本地aar
Android Studio多层Module依赖本地aar,在编译的时候发生错误,找不到aar(ModuleA libs中有c.aar,ModuleB依赖ModuleA)
此时需要在ModuleB的build.gradle中添加

repositories {
    flatDir {
        dirs '../ModuleA/libs','libs'
    }
}

同时在dependencies中添加aar名称:

compile(name:'c', ext:'aar')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值