工程结构

优质
小牛编辑
137浏览
2023-12-01

1.1. 工程结构

公版 APP 安卓工程主要由 3 大部分构成,分别是:

  • app :APP 的主 module 模块,包含 APP 的初始化、启动和首页的相关业务逻辑;
  • app_base :APP 的基础库,包含工程中的一些通用的基类和工具类,还包含了公版 APP 需要厂商手动修改的配置文件;
  • module:根据不同的业务逻辑,将整个 APP 的拆分成了 8 个不同的 module,每个 module 负责一块具体的业务逻辑,比如:m_account module 就主要是关于账户的相关功能。

具体工程结构如图所示:

Android studio 中对应的项目结构如下:

1.2. module 功能介绍

工程中一共有 8 个 module,每个 module 负责一块具体的业务逻辑,具体如下:

  • m_account:账户中心模块,主要包含了 APP 登录注册、密码找回和修改等关于账户的功能;
  • m_binder:设备配网模块,主要包含了 APP 添加设备和重新配网等与配网相关的功能,比如:通过蓝牙去搜索设备,与设备建立连接,发送配网数据到设备等;
  • m_debug:APP 调试模块,主要包含了 APP 当前开发环境的切换功能,APP 分为测试环境和正式环境,可根据需要进行环境的切换;
  • m_media:畅听模块,主要包含了 APP 当前支持的全部多媒体内容,比如:音乐、故事和儿歌等,相关的媒体播放,控制,显示等操作都在该模块中实现;
  • m_settings:设置模块,主要包含了 APP 中账户信息和设备信息的查看和修改;
  • m_skill:发现模块,主要包含了 APP 中当前设备支持的全部技能信息;
  • m_webview:webview 模块,APP 中很多地方需要加载 H5 页面,这是 APP 中对原生的webview 进行了相应封装以更加高效便捷的加载 H5 页面。

1.3. APP 架构介绍

APP 采用的是 MVP 架构,每个模块中 activity/fragment 主要是负责 UI 层,即各个 Activity 和 Fragment的创建和数据显示,不包含具体的业务逻辑,只是 UI 相关。具体业务逻辑处理,比如数据的请求等操作,均放在 presenter 中,与 UI 的无关。如果界面中有列表控件,如 recycleview,则会在 adapter 处理与列表控件相关的 item 和数据等。如果页面中有一些自定义的控件,比如 popupWindow,则会将相关的控件放在 view 中。下图是 m_binder module 的目录结构: