android 解决aar二次封装问题

项目要提供给它方使用,但是自己项目中又使用到了别的第三方的aar,又不能提供module的lib,只能在aar的基础上进行二次封装

一、什么是aar

AAR文件是一种Android归档包(类比Jar:Java Archive),这种归档包是由Gradle构建库的Android Library插件产出的。它是一个压缩包,里面的内容可以总结为5个目录和5个文件,如图所示:
aar结构目录

二、aar合并

采用合并的第三方插件是 android-fat-aar
地址:https://github.com/adwiv/android-fat-aar
这个插件 可以兼容到3.0以后,唯一缺点好像是不能合并aidl,
官方文档:
不支持
所以:在自己二次封装的时候尽量避免这些问题(一般不会出现aidl的合并)

合并过程

新建项目工程:

1.在工程的build.gradle中引进插件:

classpath 'com.kezong:fat-aar:1.2.5'

引入插件
2.新建androidLibrary:(如图所示)
library在新建的library中使用:

apply plugin: 'com.kezong.fat-aar'

使用plugin
在library中集成第三方aar
配置
3.生成aar文件即可
如果自己使用新工程需要引进生成的aar,出现引入包重复,去掉重复的即可


最后顺遍说一下 implementationCompileOnlyapi的区别
gradle3.0对gradle2.x的代替:
compile依赖关系已被弃用---->被implementation和api替代,
provided ----->被compile only替代,
apk ------>被runtime only替
解释一下:
implementation、api:

api和compile是一样的效果,implementation有所不同,通过implementation依赖的库只能自己库本身访问,举个例子,A依赖B,B依赖C,如果B依赖C是使用的implementation依赖,那么在A中是访问不到C中的方法的,如果需要访问,请使用api依赖

compileOnly:

compileOnly和provided效果是一样的,只在编译的时候有效, 不参与打包

runtimeOnly:

runtimeOnly 和 apk效果一样,只在打包的时候有效,编译不参与

参考:
合并AAR踩坑之旅
AS 3.1 多library合并打包成aar的正确方式(fat-aar)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值