定义
Android 库在结构上与 Android 应用模块相同。它可以提供构建应用所需的一切内容,包括源代码、资源文件和 Android 清单。
库模块在以下情况下非常有用:
- 构建使用某些相同组件(例如 Activity、服务或 UI 布局)的多个应用。
- 构建存在多个 APK 变体(例如免费版本和付费版本)的应用并且需要在两种版本中使用相同的核心组件。
将应用模块转为库模块
-
apply plugin: 'com.android.application'
->apply plugin: 'com.android.library'
- 将app.gradle文件中有关
application
的字段全部除去 - 点击 Sync Project with Gradle Files
本地添加aar库
- 添加已编译的 AAR(或 JAR)文件:
点击 File > New Module
依次点击 Import .JAR/.AAR Package 和 Next
输入 AAR 或 JAR 文件的位置,然后点击 Finish - 确保库列在您 settings.gradle 文件的顶部有
include ':app', ':my-library-module'
- 打开应用模块的 build.gradle 文件,并向 dependencies 块中添加一行新代码
dependencies { compile project(":my-library-module") }
- 点击 Sync Project with Gradle Files
注意点
- aar文件中并没有包含原项目的依赖,在本项目中请手动添加依赖
- 原项目如果开启了databinding,请在本项目中手动开启
- 应用模块的 minSdkVersion 必须大于或等于库定义的版本
- 库项目的清单文件中的
application
标签属性最好清空,否则会有资源合并冲突;或者参考官网解决办法 - 如果库项目中的资源文件名和主项目的资源文件名重复了,默认使用主项目的资源文件,所以最好统一好aar工程内的资源文件名,使其唯一
- 如果不想在主项目中手动添加依赖,可以在用远程依赖的方式,把aar库上传到
jcenter()
或者marven()
上,然后就像我们平时添加第三方库一样添加我们的aar库,当 Gradle 依赖 Maven 上的这个库时,会通过 pom 文件下载对应依赖 - aar库中的switch语句全部换成ifelse语句
- aar库是debug版本还是release版本对主项目的引用没有影响,但是在iOS中要保持版本一致
网友评论