android之多层module依赖改成依赖aar
来源:互联网 发布:dnfsao套装礼盒淘宝网 编辑:程序博客网 时间:2024/06/01 22:50
这里只谈aar多层依赖关系!!实用性与复杂性留给读者自行判断。毕竟人无完人,方案也不是全都完美无缺的嘛
1、背景
由于公司有两个项目组,想将这两个项目组的某些功能模块相互使用,比如A项目组要使用B项目组的个人中心,B项目组怎么办呢,我们的办法是将个人中心独立成一个lib的module单独提供给A项目组;ok,这也已经满足了。然后过了段时间A项目组又发现B项目组的朋友圈模块不错,又想将这块应用到A项目组中,B项目组还是一样将朋友圈独立成一个lib的module提供给A项目组……其中当然B也是要A项目组中的某些功能模块,A项目组也是同样的方式提供给B……一而再再而三,一下子多了10多个lib……这是每次clean项目都需要半小时+,灰常烦银,这时无意使用aar编译会快一些。怎么获取aar,以及单个aar依赖下边给出别人的博客:
其实只要编译过app,都会在outputs目录下生成对应的aar(debug和release)
获取aar:aar依赖
http://blog.csdn.net/getchance/article/details/47257389
http://blog.csdn.net/yutao52shi/article/details/48015125
2、正题
使用B项目来说,开始除了app其他都是lib,我们用依赖关系,一层层依赖还是挺麻烦的,关系如下:
1、app-->lib_preg_home-->lib_home-->lib_topic-->lib_message-->lib_webview-->lib_share-->lib_bang-->lib_adv-->lib_search-->lib_baseproject -->lib_skin2、lib_preg_home-->lib_draw_view3、lib_preg_home-->spicy |--->lib_baseproject4、lib_preg_home-->lib_live| |--->lib_share5、lib_preg_home-->lib_imageselector首先app依赖lib_preg_home,lib_preg_home依赖lib_home……以此类推……其中lib有些是A项目组的,有些事B项目组的,然后我们只想让app依赖lib_preg_home,lib_preg_home都只是依赖aar,从而可以中断其它lib的依赖,这时怎么办呢? 别着急,一下就来解决
假设已经从各个lib中的output目录拿到了lib中对应的所有aar,我们拿的是release,当然也可以用debug的如下图:
然后将所有的aar都放到libs中,当编译打包的时候都会在lib_preg_home的build下自动生成所需要的资源:如下图:
这时还要配置gradle,让其能识别libs下的aar文件,配置两个gradle如下:
第一:配置lib_preg_home的gradle如下:
让当前libs下的aar文件能被识别编译
dependencies { compile fileTree(include: ['*.jar'], dir: 'libs')// compile project(':lib_draw_view')// compile project(':lib_live')// compile project(':lib_spicy')// compile project(':lib_home')// compile project(':lib_imageselector') compile(name:'lib_skin-release', ext:'aar') compile(name:'lib_baseproject-release', ext:'aar') compile(name:'lib_home-release', ext:'aar') compile(name:'lib_topic-release', ext:'aar') compile(name:'lib_message-release', ext:'aar') compile(name:'lib_webview-release', ext:'aar') compile(name:'lib_share-release', ext:'aar') compile(name:'lib_bang-release', ext:'aar') compile(name:'lib_adv-release', ext:'aar') compile(name:'lib_draw_view-release', ext:'aar') compile(name:'lib_live-release', ext:'aar') compile(name:'lib_spicy-release', ext:'aar') compile(name:'lib_home-release', ext:'aar') compile(name:'lib_imageselector-release', ext:'aar') compile(name:'lib_search-release', ext:'aar')}
第二:配置项目下的gradle:注意不是app下的gradle,而是整个项目下的gradle:配置如下:
allprojects { repositories { jcenter() flatDir {// dirs '../lib_imageselector/libs' dirs '../lib_preg_home/libs'; } }}重点是:
flatDir {// dirs '../lib_imageselector/libs' dirs '../lib_preg_home/libs'; }其实这里主要是配置路径:这个是相对项目下的路径,一定要配上/lib_preg_home/libs,否则会由于路径不对找不到对应的aar;有些博客说是在lib下配置flatDir比如就拿lib_preg_home来说在lib_preg_home的gradle下配置flatDir{
dirs 'libs';}就行;但是亲测是无用的,必须在项目下的gradle中配置才能找到。大伙可是试试。
这里还要啰嗦两句使用aar:
一:个是lib比较稳定的情况下使用是最合适的,因为不用改动;
二:适合跨项目开发,那里只要提供aar就可以,但是会有一定的麻烦,因为毕竟没有源码想改也改不了,这也起到了保护lib的作用吧,看个人而定,不过依赖太多,肯定也会引来一些问题的
三:快去试试看看是不是clean或编译快一些了
到此就配置完事了。。。
0 0
- android之多层module依赖改成依赖aar
- android之多层module依赖改成依赖aar
- Android Studio依赖aar
- android studio aar 添加依赖
- Android-aar包依赖配置
- android studio添加aar依赖
- Android studio 依赖aar包
- 不同module依赖多个aar问题解决方案
- Android Studio添加aar包依赖
- android studio依赖以及生成aar
- android导入xxx.aar依赖方法
- 依赖Android AAR的Cordova插件制作
- Android Studio 引入 aar 依赖包
- android项目依赖aar的方式
- 手动导入aar依赖
- 导入本地aar依赖
- aar依赖初试, 使用android studio制作aar包以及依赖方法
- Android Studio依赖包aar使用全攻略!
- checkbox 全选
- 修改状态栏字体颜色
- WebView自适应以及与JavaScript交互
- 【IOS沉思录】Objective-C中的糖衣语法(字面量)
- alpha版、beta版、rc版的意思
- android之多层module依赖改成依赖aar
- Android性能优化之利用LeakCanary检测内存泄漏及解决办法
- 使用mybatis-generator来快速生成代码
- 第二章、Java基本语法
- 获取选择checkbox的值
- HandlerInterceptorAdapter实现简单拦截
- JZOJ4855. 【NOIP2016提高A组集训第6场11.3】荷花池塘
- 5分钟秒懂xml头文件
- 第十周项目3-利用二叉树遍历思想解决问题(3)