Android模块化初体验及教程(二)

上一章初级体验了一下模块化,但是还是有很多需要优化和改进的地方

思考点:

  • 怎么单独运行某一个子模块,不影响到其他模块之间的依赖?
  • 子模块需要Application,难道要每个模块写一个?
  • 因为是同一个服务器,所以网络请求库,怎么跨模块间公用?
  • 模块间怎么通信?

解决

将项目结构修改下:

  • app 模块

只内置一个 LauncherActivity 作为启动界面,之后跳转到某个详细模块

  • library 模块

与业务无关的库,可放置到任何APP项目内作为底层支持

  • common 模块

直接依赖library库, 与业务有关的公共库,内置 Application 、启动图标 、网络请求,以及路由地址管理,后期所有子模块,直接依赖common模块

详细

  • 针对到每个模块,不影响到其他模块之间的依赖,的解决方案
ext {
    // false 单独运行模式
    // true 组建依赖模式
    // isComponent = true
    androidConfig = [
            compileSdkVersion: 27,
            minSdkVersion    : 19,
            targetSdkVersion : 27,
            versionCode      : 1,
            versionName      : "1.0"
    ]
    moduleConfig = [
            // 这里放置,每个模块的包名,以及是否开启模块模式
            app         : [
                    appId: "com.teccyc.teccyc"
            ],
            loginAccount: [
                    isComponent: true,
                    appId      : "com.teccyc.teccyc.loginAccount"
            ]
    ]
    appcompat_v7_version = '27.1.0'
    arouter_compiler_version = '1.2.2'
    arouter_api_version = '1.4.1'
}

在moduleConfig 里,将每个模块的appID,以及是否模块化,详细配置

  • 所有子模块公用一个Application

将APPlication,ic_launcher 以及网络请求,路由地址管理,以及会话支持,全都转移到common模块中去。所有子模块直接依赖common模块

  • 模块间通信

在common模块中,依赖阿里开源的 ARouter ,模块之间跳转,传值,直接使用路由来搞定

2019-01-11 10:56:43 星期五

转载于:https://my.oschina.net/xiaolei123/blog/3000073

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值