Android模块化编程之引用本地的aar
2016-01-13 14:07
399 查看
转自:http://www.stormzhang.com/android/2015/03/01/android-reference-local-aar/
随着项目越来越多,代码的复用就变得异常重要,这时候就要进行模块化编程,就是把一些通用的组件或者类库做成单独的模块,其他项目直接进行引用就好。针对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的方式直接方便的引用。
首先Android Library项目的gradle脚本只需要在开头声明
之后就和导出apk文件一样的方法,执行 ./gradlew assembleRelease,然后就可以在build/outputs/aar 文件夹里生成aar文件
生成aar之后下一步就是如何引用本地的aar文件?本地的aar文件并没有像引用jar文件这么简单,官方也没有提供解决方案。好在国外的一些前辈总结出了方法,下面就以test.aar文件为例来详述下方法
1、把aar文件放在一个文件目录内,比如就放在libs目录内
2、在app的build.gradle文件添加如下内容
3、之后在其他项目中添加一句gradle依赖便方便的引用了该library
以上方法亲测有效。
当然通过gradle最普遍的方法是把aar上传到mavenCentral或者jcenter,引用的话更方便,但是对于一些公司内部library不想公开,而传统的引用library方式又太繁琐,引用本地的aar文件这种方式会非常方便合适,之后通用的模块只需要做成library,不管更新还是修改只需要打包成aar,然后供其他项目使用就好了,对Android开发来说这是提升代码复用非常有效的一个手段。
随着项目越来越多,代码的复用就变得异常重要,这时候就要进行模块化编程,就是把一些通用的组件或者类库做成单独的模块,其他项目直接进行引用就好。针对Android开发最常见的就是Android Library,在Gradle出现之前引用Android Library的方式也很繁琐,但是有了Gradle一切变得非常简单方便。
aar
何为aar?大家都知道jar文件把,如果你有一个Android Library项目,可以很容易的导出jar文件,然后在其他项目中很方便的引用,aar和jar类似,区别就是一个Android Library项目导出的jar文件不能包含资源文件,比如一些drawable文件、xml资源文件之类的,所以这就有很大的限制,在gradle之前我们要引用带资源文件的Android Library必须要把整个library导入进来进行引用,但是有了gradle之后,Android Library项目可以直接导出成aar,然后其他项目像引用jar的方式直接方便的引用。
导出aar
首先Android Library项目的gradle脚本只需要在开头声明apply plugin: 'com.android.library'
之后就和导出apk文件一样的方法,执行 ./gradlew assembleRelease,然后就可以在build/outputs/aar 文件夹里生成aar文件
引用本地的aar
生成aar之后下一步就是如何引用本地的aar文件?本地的aar文件并没有像引用jar文件这么简单,官方也没有提供解决方案。好在国外的一些前辈总结出了方法,下面就以test.aar文件为例来详述下方法1、把aar文件放在一个文件目录内,比如就放在libs目录内
2、在app的build.gradle文件添加如下内容
repositories { flatDir { dirs 'libs' //this way we can find the .aar file in libs folder } }
3、之后在其他项目中添加一句gradle依赖便方便的引用了该library
dependencies { compile(name:'test', ext:'aar') }
以上方法亲测有效。
总结
当然通过gradle最普遍的方法是把aar上传到mavenCentral或者jcenter,引用的话更方便,但是对于一些公司内部library不想公开,而传统的引用library方式又太繁琐,引用本地的aar文件这种方式会非常方便合适,之后通用的模块只需要做成library,不管更新还是修改只需要打包成aar,然后供其他项目使用就好了,对Android开发来说这是提升代码复用非常有效的一个手段。
相关文章推荐
- 搭建 Android 集成开发环境
- Android之史上最全最简单最有用的第三方开源库收集整理
- 安卓通过串口控制zigbee
- Android Studio 简单设置
- Android 自定义 ImageLoader
- Android异步消息处理(一)--》Handler和多线程深入
- Android ADB命令大全(通过ADB命令查看wifi密码、MAC地址、设备信息、操作文件、查看文件、日志信息、卸载、启动和安装APK等)
- android数据存储方法总结
- android 下载apk源码
- android中延迟执行某个任务
- 【Android动画】之Tween动画 (渐变、缩放、位移、旋转)
- This Handler class should be static or leaks might occur Android
- 从.NET的宠物商店到Android MVC MVP
- 阅读《Android 从入门到精通》(10)——单项选择
- android上的缓存、缓存算法和缓存框架
- Android退出应用最优雅的方式(改进版)
- [Android] Android开发优化之——对Bitmap的内存优化
- android 简单试题系统
- android studio开发中遇到的问题收集
- Android中使用log4j