Skip to content

About

Android项目组件化示例代码,支持Fragment

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

HT_ModulePattern

集成开发模式和组件开发模式转换

1.首先打开Android项目的 gradle.properties 文件,然后将 isModule 改为你需要的开发模式(true/false), 然后点击 "make project" 按钮同步项目;

2.切换android app可以运行单独的组件

项目结构

结构介绍

app组件功能

app组件是空壳工程

1.配置整个项目的Gradle脚本,例如 混淆、签名等

2.app组件中可以初始化全局的库

3.添加 multiDex 功能

4.业务组件管理

common组件功能(功能组件)

common组件是基础库

1.公用的类;例如:网络请求、图片加载、工具类、base类等等;

2.第三方sdk

3.声明APP需要的权限;

4.定义全局通用的主题;

5.values/string

6.assets

main组件功能(业务组件)

1.声明android.intent.category.LAUNCHER

2.SplashActivity

3.MainActivity

a/b组件功能(业务组件)

这两个组件都是业务组件,根据产品的业务逻辑独立成一个组件

组件化实施流程

一:组件模式和集成模式的转换

Android Studio中的Module主要有两种属性,分别为:

1、application属性,可以独立运行的Android程序,也就是我们的APP;

2、library属性,不可以独立运行,一般是Android程序依赖的库文件;

在Android项目中的任何一个build.gradle文件中都可以把gradle.properties中的常量读取出来,我们在gradle.properties中定义一个常量值 isModule(是否是组件开发模式,true为是,false为否):

业务组件的build.gradle中读取 isModule,但是 gradle.properties 还有一个重要属性: gradle.properties 中的数据类型都是String类型,使用其他数据类型需要自行转换;也就是说我们读到 isModule 是个String类型值,而我们需要的是Boolean值,代码如下

二:组件之间AndroidManifest合并问题

组件要想单独运行就需要一个launch,那么合并的时候就会有多个launch。我们可以在main文件夹下创建一个module文件,创建一个AndroidManifest.xml,然后根据isModule指定AndroidManifest.xml的文件路径,让业务组件在集成模式和组件模式下使用不同的AndroidManifest.xml,在业务组件的 build.gradle 中指定表单的路径,这样表单冲突的问题就可以规避了。

三:组件之间调用和通信

在common组件下依赖

api 'com.alibaba:arouter-api:1.3.1' annotationProcessor 'com.alibaba:arouter-compiler:1.1.4' 我们使用阿里ARouter作为路由

使用方法如下:

1.在业务组件下依赖

annotationProcessor 'com.alibaba:arouter-compiler:1.1.4' 2.在需要跳转的activity上添加注解@Route(path = "/a/activity")

3.跳转指定的activity

ARouter.getInstance().build("/a/activity").navigation()

About

Android项目组件化示例代码,支持Fragment

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages