Android从零撸美团(一) - 统一管理 Gradle 依赖 提取到单独文件中

但是如果按照著名的 Android-CleanArchitecture (github.com/android10/A…) 介绍的架构对项目进行分层,整个项目会有好几个 module

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kJZ86GRW-1638078773628)(https://user-gold-cdn.xitu.io/2018/11/3/166d7deec392e066?imageView2/0/w/1280/h/960/ignore-error/1)]

先贴出 Clean architecture 的架构图感受下~

基于这个分层思想,我的项目结构是这样的:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K3dCtbLS-1638078773659)(https://user-gold-cdn.xitu.io/2018/11/3/166d7deec3bf9e4c?imageView2/0/w/1280/h/960/ignore-error/1)]

项目一共分为四层 common: 整个依赖的最底层,抽取出其他层共有的代码。比如 RxJava的封装,工具类的封装等。 data: 数据层,网络数据、数据库中数据处理层。 domin: 这层应该是纯 Java 代码,从 data 层出来的数据要经过 domin 转换一下,UI层 app 引用的实体都是 domin 层的。用这种方法来隔离网络和数据库数据变化对代码的影响。 app: 应该叫 presentation 表现层,觉得这名字太长还是 app 看着舒服~ 这层就是正常的 Android 代码。

这里对 Clean architecture 做了一定的修改,在实践中感觉这样分层开发更顺手。 具体的架构解析及每一层具体该怎么写请关注后面的文章,以后都会详细讲解。

重回刚才的问题,为什么要抽取依赖统一管理?

有四个 module 就有四个 build.gradle,并且依赖很多都是重复的,分开写在四个不同的文件不利于后期维护升级。 想想如果要更改某个依赖的版本,得打开四个文件挨个改,多麻烦。 所以将可变的依赖抽离出来统一管理是很有必要的。

二、提取方法

下面就是具体的操作方法。 把大象装进冰箱需要几步?

三步走:

1、创建管理依赖的文件

本项目中在与 app , data 同级的根目录下创建了文件夹 buildsystem,然后在这个文件夹下创建文件 dependences.gradle。目录结构如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mghLIsc5-1638078773660)(https://user-gold-cdn.xitu.io/2018/11/3/166d7deec3a39916?imageView2/0/w/1280/h/960/ignore-error/1)]

dependences.gradle 代码:

ext {

//Android
androidBuildToolsVersion = “27.0.3”
androidMinSdkVersion = 18
androidTargetSdkVersion = 27
androidCompileSdkVersion = 27

//Libraries
recyclerViewVersion = “27.0.2”
rxjava2Version = “2.1.8”
rxandroidVersion = “2.0.1”
daggerVersion = “2.14.1”
glideVersion = “4.5.0”
butterKnifeVersion = “8.8.1”
bannerVersion = “1.4.10”
loggerVersion = “2.1.1”
baseRecyclerViewAdapterHelperVersion = “2.9.30”
dbflowVersion = “4.2.4”

app = [
recyclerView : “com.android.support:recyclerview-v7: r e c y c l e r V i e w V e r s i o n " , r x j a v a : " i o . r e a c t i v e x . r x j a v a 2 : r x j a v a : {recyclerViewVersion}", rxjava : "io.reactivex.rxjava2:rxjava: recyclerViewVersion",rxjava:"io.reactivex.rxjava2:rxjava:{rxjava2Version}”,
rxandroid : “io.reactivex.rxjava2:rxandroid: r x a n d r o i d V e r s i o n " , d a g g e r : " c o m . g o o g l e . d a g

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值