Android通用框架设计与完整电商APP开发一项目框架设计与模块分解

本文详细解析了Latte项目的架构设计,包括核心module、功能module和项目module的划分,阐述了注解module与代码生成器module的作用,以及如何通过annotationProcessor实现动态代码生成,特别提到了在微信登录和注册中应用此技术的必要性和优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、项目架构设计与模块分解

项目首先会有一个核心module,然后会有多个功能module,在功能module之上会有具体项目module,这个具体项目module包括,也就是类型为application的module,这个module包含项目基础元的一些信息,比如说包名、applicationId以及一些特有的信息,比如一些第三方平台需要的applicationId、appSecrete等都会写在这个具体的module里。注解module包含了各种annotation,这里面是一些具体的元信息。注解module配合着代码生成器module,也就是通过annotationProcessor或apt调用的module来实现动态生成代码的功能。这个类似于butterknife,butterknife就是这样一个库。这个功能在之后的微信登陆和注册里也会用到,因为微信登陆里有一个很霸道的地方,因为它要求开发者必须在application module里面新建一个微信开发包,包下必须有它规定的两个activity,如果没有的话无法调用之后登陆、支付的回调。这里就可以通过annotationProcessor来生成我们需要的类,在编译器中完成,通过这样的编译器生成技术,我们既不会影响性能,同时也能绕过微信的制度实现自己的功能

 

2、项目整体的名字就以Latte命名,那么分布下来就是Latte-annotations(注解module)

latte-compiler(注解编译器)、latte-core(核心功能)、latte-...(添加一些独立于功能之外的功能,比如说latte-UI)

latte-ec(业务逻辑module,这是一个Androidlibrary)

 

3、

latte-annotations和latte-compiler都为java library,也就是说它为一个纯java库,里面不包含一些Android内置的类和方法。

latte-core、latte-...和latte-ec电商为Android类型的library,这是为了便于引入到我们的项目module中,也就是application module中。

 

4、

注解model:在butterknife中有一个butterknife anninotations,这个module就是我们这个module的职能所在。它提供的是注解之类的元数据,其它的所有功能都不提供。如果提供了其它的功能,那么就需要反思,是不是我们的架构出了什么问题。因为软件封装的宗旨就是,单独的功能只做单独的事情,而不应该去干涉其它的功能。

代码生成器model:它是负责使用我们的注解生成我们所需要的代码,可以类比一下butterknife的compiler这个module,功能是一样的。

核心module提供了整体项目的路由、网络请求、文件处理、图片剪裁等等一些通用的功能,以及整个项目的组织,全是由module处理的这个核心。

业务model:整个项目讲的是电商,所以要编写业务module,业务module包含了许多电商所特有的UI,特有的逻辑以及处理方式。同样的,如果之后需要开发新闻、社交之类的应用的话,同样可以开发出其它的业务module。

具体的项目module:类型是Android application,这个module处理的是一些项目独有的特殊处理,独有的UI,如果想使用代码生成器的话可以使用annotation Processor或apt的方式引入它们。这个分类方式是Android项目默认的分类方式,它就相当于eclipse时代的project,而整个eclipse时代的project就相当于studio时代的workspace。

 

5、模块分解

 

 

6、

7、

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值