壮心未与年俱老,死去犹能作鬼雄。这篇文章主要讲述Android多模块构建合并aar解决方案相关的知识,希望能为你提供帮助。
前言 【Android多模块构建合并aar解决方案】前段时间,
我在实现gradle多模块构建遇到一个问题,
以前我们基本上是以jar包形式让开发者集成到工程中使用,
但自从android Studio中有了多module的概念,
而我们的SDK也是分了多个模块进行构建的,
但我们这里有个问题就是模块之间是相互关联的,
不能针对每个模块单独打包,
而每个module都会生成对应的aar,
但并不会把依赖的module代码打进去,
别问我为什么知道,
你将aar后缀改为zip,
然后反编译classes.jar就可以看到。所以我们这边就有了合并aar这样的一个需求,
下面就告诉大家怎么来实现。
android-fat-aar 当时我遇到这个问题,
就去github搜了一下,
已经有人将合并aar的脚本开源出来了,
开源地址如下:
https://github.com/adwiv/android-fat-aar
什么是aar?
什么是aar?
它跟jar包有什么区别?
它该怎么样使用?
相信大家一定会有这些疑问。首先aar是针对Android Library而言的,
你可以理解为IDE针对Android Library的打包,
一个aar包含什么东西?
它的文件后缀名是.aar,
它本身是一个zip文件,
强制包含以下文件:
- /AndroidManifest.xml
- /classes.jar
- /res/
- /R.txt
- /assets/
- /libs/name.jar
- /jni/abi_name/name.so (where abi_name is one of the Android supported ABIs)
- /proguard.txt
- /lint.jar
https://developer.android.com/studio/projects/android-library.html#aar-contents
jar包跟aar包有什么区别?
jar: 只包含了class文件与清单文件, 不包含资源文件, 如图片等所有res中的文件。
aar: 包含所有资源, class以及res资源文件全部包含。
如果你只是简单实用一些类库, 你可以直接使用
*.jar
文件,
而如果你想既想使用类库,
又想实用资源,
那么你就可以创建一个Android Library,
使用它生成的*.aar
文件。jar文件的使用方式我们应该比较熟悉了, 将它复制到工程的libs目录下, 然后在gradle中添加以下脚本:
推荐阅读
- Android RecyclerView单击长按事件:基于OnItemTouchListener +GestureDetector标准实现,封装抽取成通用工具类
- React—Native开发之 Could not connect to development server(Android)解决方法
- Android RecyclerView单击长按事件标准实现(基于OnItemTouchListener + GestureDetector)
- 和android热修复AndFix技术亲密接触
- android Button点击事件总结
- Android开发之ViewPager的简单使用
- android aidl
- Android 控件知识点
- Android 回调接口是啥,回调机制详解(zhuan)