Android 组件化,从入门到不可自拔

本文介绍了Android组件化的优点,如独立版本管理、代码复用和统一第三方库管理,并展示了简单的组件化架构搭建过程。文章通过实际案例,阐述了如何创建业务组件,以及如何通过gradle配置实现灵活的组件组合。同时,文中提到了组件化中面临的问题,如应用ID、manifest管理和资源冲突,并给出了相应的解决方案。最后,提供了Android组件化的学习资源,强调了成为高级工程师的重要性。
摘要由CSDN通过智能技术生成
  1. (业务)组件,可有自己独立的版本,业务线互不干扰,可单独编译、测试、打包、部署;

  2. 各业务线共有的公共模块可开发为组件,作为依赖库供各业务线调用,减少重复代码编写,减少冗余,便于维护;

  3. 通过 gradle 配置文件,可对第三方库进行统一管理,避免版本冲突,减少冗余;

  4. 通过 gradle 配置文件,可实现 application 与 library 灵活组合与拆分,可以更快速的响应需求方对功能模块的选择。

组件化实践

=======================================================================

首先要说明的是,下述是一个简单的不能再简单的组件化案例,只求帮助大家搭建起组件化的架构,功能上极其简约。

九层之台,起于累土。我们这就开始搭组件化的架构吧!

组件化架构


先上一张组件化项目整体架构图

其中的“业务组件”,既可以作为 application 单独打包为 apk,又可以作为 library 灵活组合为综合一些的应用程序。

大多数开发者做组件化时面对的业务需求,都是上面这种情况。

我司的需求略有不同,不是将子业务组件组合为整体应用程序,而是反其道而行之,需要将已上线项目拆分给不同的业务公司使用,在不同业务系统中,项目的逻辑和代码会有区别,且版本不统一。

基于此,我搭建项目架构如下图所示,其中“m_moudle_main”是公司主要的、且逻辑和代码相同的业务组件,“b_moudle_north”和“b_moudle_south”是拆分出来的业务组件,管理各自私有的逻辑和代码,且版本有差别。

从Android工程看,结构如下图所示:

注:取moudle名,手动加上“b_” “m_” “x_”这样的前缀,只是为了便于分辨组件层次。

统一配置文件


在项目根目录下,自建 config.gradle 文件,对项目进行全局统一配置,并对版本和依赖进行统一管理,源码如下:

/**

  • 全局统一配置

*/

ext {

/**

  • module开关统一声明在此处

  • true:module作为application,可单独打包为apk

  • false:module作为library,可作为宿主application的组件

*/

isNorthModule = false

isSouthModule = false

/**

  • 版本统一管理

*/

versions = [

applicationId : “com.niujiaojian.amd”, //应用ID

versionCode : 100, //版本号

versionName : “1.0.0”, //版本名称

compileSdkVersion : 28,

minSdkVersion : 21,

targetSdkVersion : 28,

androidSupportSdkVersion: “28.0.0”,

constra

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值