为了账号安全,请及时绑定邮箱和手机立即绑定

Android组件化初识

标签:
Android

组件化初识

为什么使用组件化

对于Android插件化与组件化,都各有千秋,我之所以选择模组件化,完全因为插件化有点流氓了,各种热插拔,完全不把用户当人,埋了点,想给你什么功能就给你什么功能(其实插件对于开发者维护成本更高,搭建成本也就更高,所以还是先学习组件化)


组件化的优点

  1. 加快业务迭代速度,各个业务模块组件更加独立,不再出现业务耦合情况;

  2. 稳定的公共模块采用依赖库方式,提供给各个业务线使用,减少重复开发和维护工作量;

  3. 迭代频繁的业务模块采用组件方式,各业务研发可以互不干扰、提升协作效率,并控制产品质量;

  4. 为新业务随时集成提供了基础,所有业务可上可下,灵活多变;

  5. 降低团队成员熟悉项目的成本,降低项目的维护难度;


封装

  1. 项目架构

因为项目使用的是kotlin进行开发,所以uirouter和widegt、dblib需要依赖baselib,widegt是控件库,可以统一开发app开发中的view,需要用到资源文件,所以需要依赖res库。commonlib是基础库,集成uirouter、widegt、dblib。放一些base文件、联网封装、以及utils(原谅我uml图不会画) 

5b827f4400014a1c04220435.jpg

2. 配置config.gradle 
1. 在项目中新建config.gradle 
2. 配置变量

ext{
    isBuildApp = false //false:作为Lib组件存在, true:作为application存在
}
  1. 业务库gradle配置 

    1. 配置lib与Application的转化

    2. manifest的依赖,因为lib与Application所使用的manifest不同,需要区分对待

//lib与Application的转化if (rootProject.ext.isBuildApp) {
    apply plugin: 'com.android.application'} else {
    apply plugin: 'com.android.library'}    //配置不同的manifest
 sourceSets {
        main {            if (rootProject.ext.isBuildApp) {
                manifest.srcFile 'src/main/debug/AndroidManifest.xml'
            } else {
                manifest.srcFile 'src/main/release/AndroidManifest.xml'
            }
        }
    }
  1. app的gradle配置

    if (rootProject.ext.isBuildApp) {
        implementation project(':commonlib')
    } else {
        implementation project(':text')
    }
  1. 路由搭建:

因为业务库之间相互依赖关系不大,界面调整时需要使用路由,在这里我选择ARouter(阿里出品,必属精品)。当然不使用路由也可以,去配置scheme的方式启动也可以,但是这种容易出问题。因此使用uirouter进行路由表的维护。使用ARouter的注意事项,每一个业务库和app都要去依赖arouter-compiler,否则无法在该库中生成路由表。


使用

在basemodule进行修改,新建app与业务库,依赖业务库就可以。每个业务库独立开发,不相互影响,不会出现mvp、mvc、mvvm架构冲突,想怎么写就怎么写。需要依赖的第三方就放在commonlib中,大家都可以使用


使用时注意事项

application

网上有反射和使用baseApp两种方式,我这里使用的是baseApp这种方式,使用时只需要配置到Application中的manif就行 

组件开发和打包

开发组件时只用让isBuildApp = true,就可以让组件独立运行,打relese包时需要让isBuildApp = false


FileProvider

现在7.0新出的FileProvider问题相信大家都可以理解了,很多时候都需要用到,因此只要我将它放在了commonlib中,在项目中使用时需要修改该authorities就可以了。 

config.gradle配置

config.gradle不仅可以配置参数,还可以统一配置android和依赖,依赖放在这里可以方便我们去查看维护,很方便

原文链接:http://www.apkbus.com/blog-822715-76960.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消