Android .jar和.aar的区别

一、概念

jar: 是一种软件包文件格式,只包含class文件和清单文件。

aar: Android库项目的二进制归档文件,包含class文件和其他所有资源文件,包括res中资源文件。

二、如何生成

方式一:编译生成
Android Studio中以moudel来管理,新建一个moudel,选中android library;代码完成后,编译这个moudel即可生成.aar及.jar。

方式二:执行命令生成

手动执行对应module的assembleRelease命令生成。
在这里插入图片描述

位置区分:

.aar位于outputs/aar;

.jar位于build/intermediates/bundles/debug
或build/intermediates/bundles/release

注意:如果是项目的主module,即app,则生成的是apk包

三、如何引用

1.引用本地jar:

1.将*.jar拷贝到app中的lib下
2.更改build.gradle 配置文件

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

注意: 升级Android Studio 3.0之后,发现 module 不会自动生成 aar 了。所以只能手动添加代码生成了。

2.引用本地aar:

1.将*.aar拷贝到app中的lib下
2.更改build.gradle 配置文件

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

注意: 如果aar中引用了第三方的lib,在app中还要引用需要的第三方库。如果忽略了这个问题,很可能引发ClassNotFoundException异常。

四、使用推荐

根据你的类库的作用,如果需包含资源文件,就用aar.如果不需包含资源文件,就用jar

五、注意

1.应用模块的 minSdkVersion 必须大于或等于 Library Module 中定义的版本

2.aar作为相关应用模块的一部分编译,库模块中使用的 API 必须与应用模块支持的平台版本兼容,因此aar中的 minSdkVersion尽量设置低一点为佳。

3.如果aar中有资源文件,集成过程中,很容易出现资源冲突,例如两个相同名字的图片。因此建议给library Module的build.gradle中设置资源前缀。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值