Android入门之module

刚开始接触安卓,对 module 的概念不是很能理解,于是看了很多资料,接下来,楼主将认真解释。

安卓最基础的架构一般分为 5 种类型的 module,如下图所示,箭头表示 5 种不同 module 之间的依赖关系。

(1) 当我们开始建立一个项目时,系统会默认帮我们建立一个module,也就是我们经常看到的以 app 命名的文件夹。可以简单的将module理解为项目,一个module就是一个独立的项目,各个module之间默认情况下没有任何依赖关系。

(2)要构建一个完整的应用程序,需要很多个module协调工作,每个负责不同的工作,互相之间添加一定的依赖关系,这样才会产生一个可以上线的app应用程序。

(3)我们在开始着手做一个完整app的时候,最初的步骤如下:

建立一个项目(自带默认的项目module)

给项目添加其他 4 种 module

添加 5 种 module 之间的互相依赖关系

做了以上3步骤操作之后,才可以继续接下来的编码工作。

接下来,我们分析每一种 module 独立需要负责的工作,从而帮助我们更加深刻的理解。

扫描二维码关注公众号,回复: 950839 查看本文章

(1)注解 module:

主要作用是给代码生成器提供所需要的注解,我们经常用 Annotations Module 来表示,注解module的类型是 Java Library类型,因为需要一些JAVA提供的类库。

(2) 代码生成器 module:

主要作用是在项目编译的时候自动生成代码。是动态生成的,我们常用 Compiler Module 来表示,Compiler Module 的类型是 java Library类型,原因同注解 Module,

即需要一些java提供的类库以及资源。

(3)核心 module:

俗称 core module, 是核心 Module,主要负责路由架构,网络请求,数据流转(中转器),http请求框架,具有共性的通用UI和通用工具。是 Android Library 类型,用到的所有类库都是Android拥有的。

以上三种类型的 module 属于偏底层的module,所有的app都必须添加,是最基础的框架元素.

(4)业务 module:

这是指一种类型的module,比如说做新闻的app有很多家,所有的做新闻app的厂商都有很多共有的东西,每一家又有自己特有的东西,所以这里的业务 module指的是所有同种类型共有的东西。即新闻类的app有一套业务 module, 电商类的 app 有一套业务 module等等。业务module类型是 Android Library 类型。

(5)项目 module:

这才是我们真正本项目的module, 做不同于其他所有 app 所拥有的一些独有的东西。我们称为 Android Application Module,也是一开始创建项目的时候默认创建的 module.

针对于具体的某一个app 而言的,不是一类,也不是所有。

综上,5 种不同的 module 各自负责不同的工作,但是又一起协调配合,完成一个完整的app开发(可以上线的),可以看到,项目 module处于整个架构的最上层,注解module和代码生成器 module 处于整个架构的底层。

具体项目 module 依赖 业务 Module,业务 module 依赖核心 Module, 核心 Module和 代码生成器 Module 依赖 注解 module.


再看这张图,是不是就更加清晰了。

java Application module可以通过 annotationProcessor 或者 apt依赖 代码生成器 module.

共勉。


猜你喜欢

转载自blog.csdn.net/hqm12345qw/article/details/79468296