版权声明:本文为 stormzhang 原创文章,能够随意转载,但必须在明确位置注明出处!!!android
随着项目愈来愈多,代码的复用就变得异常重要,这时候就要进行模块化编程,就是把一些通用的组件或者类库作成单独的模块,其余项目直接进行引用就好。针对Android开发最多见的就是Android Library,在Gradle出现以前引用Android Library的方式也很繁琐,可是有了Gradle一切变得很是简单方便。编程
何为aar?你们都知道jar文件把,若是你有一个Android Library项目,能够很容易的导出jar文件,而后在其余项目中很方便的引用,aar和jar相似,区别就是一个Android Library项目导出的jar文件不能包含资源文件,好比一些drawable文件、xml资源文件之类的,因此这就有很大的限制,在gradle以前咱们要引用带资源文件的Android Library必需要把整个library导入进来进行引用,可是有了gradle以后,Android Library项目能够直接导出成aar,而后其余项目像引用jar的方式直接方便的引用。app
首先Android Library项目的gradle脚本只须要在开头声明maven
apply plugin: 'com.android.library'
以后就和导出apk文件同样的方法,执行 ./gradlew assembleRelease,而后就能够在 build/outputs/aar 文件夹里生成aar文件模块化
生成aar以后下一步就是如何引用本地的aar文件?本地的aar文件并无像引用jar文件这么简单,官方也没有提供解决方案。好在国外的一些前辈总结出了方法,下面就以test.aar文件为例来详述下方法gradle
一、把aar文件放在一个文件目录内,好比就放在libs目录内ui
二、在app的build.gradle文件添加以下内容this
repositories { flatDir { dirs 'libs' //this way we can find the .aar file in libs folder } }
三、以后在其余项目中添加一句gradle依赖便方便的引用了该libraryspa
dependencies { compile(name:'test', ext:'aar') }
以上方法亲测有效。code
固然经过gradle最广泛的方法是把aar上传到mavenCentral或者jcenter,引用的话更方便,可是对于一些公司内部library不想公开,而传统的引用library方式又太繁琐,引用本地的aar文件这种方式会很是方便合适,以后通用的模块只须要作成library,无论更新仍是修改只须要打包成aar,而后供其余项目使用就行了,对Android开发来讲这是提高代码复用很是有效的一个手段。