Standup Timer的MVC模式及项目结构分析
16lz
2021-01-24
前言
学习android一段时间了,为了进一步了解android的应用是如何设计开发的,决定详细研究几个开源的android应用。从一些开源应用中吸收点东西,一边进行量的积累,一边探索android的学习研究方向。这里我首先选择了jwood的 Standup Timer项目。Standup Timer的项目结构
项目结构划分、以及各种设计模式分析我并不在行,所以如何写这篇博文让我相当的头疼。还决定从项目的结构谈起介绍一下每个包的职责,在结合MVC的概念进一步的了解如此划分项目的好处。 在src文件夹中net.johnpwood.android.standuptimer包对应MVC中的控制器,它包含了项目中的所有Activity。 net.johnpwood.android.standuptimer.dao是数据持久层负责数据的存储访问。 net.johnpwood.android.standuptimer.model对应MVC中的M模型处理绝大多数的业务(在Standup Timer中可能因为项目小,体现不出来)。 net.johnpwood.android.standuptimer.utils是个工具包。 另外res文件夹对应了MVC模式中的View。 About.java和Help.java是用于展示项目信息和帮助的Activity类,本身并没有复杂的业务逻辑。事实上about和Help是在ConfigureStandupTimer中,通过选择某项目录然后以对话框方式展示。当ConfigureStandupTimer接受用户的输入请求,ConfigureStandupTimer.java控制器将请求移交给About.java控制器进行处理,最后About.java将决定选择那个View来响应用户的请求,这里是about.xml。 ConfigureStandupTimer是项目的起始Activtiy,它调用视图main.xml接收到的一些会议开始前的信息配置(如参加人数、团队和会议时间等),处理验证用户输入数据的合法性,然后决定调用哪个Model或者移交给其他控制器。 MeetingDetails用于展示会议的细节,它调用视图meeting_details.xml和用户交互,并将请求转交给Model里的Meeting来处理具体业务。 Prefs是一个PreferenceActivity,它负责系统的配置。 StandupTimer是项目的业务核心,通过倒计时方式控制会议的进程。使用timer.xml和用户交互,由Team负责具体业务处理(多为数据存储访问)。 TeamDetails用记录团队的所有参加过的会议和会议统计信息。team_details.xml负责和用户交互,其主要业务交由Team.java和MeetingStats.java处理。 TeamList团队列表,由teams.xml和用户交互,调用Team来处理核心业务(从数据库中选取所有的团队名称)。项目结构图
系列索引
Android 开源项目-StandupTimer学习笔记索引更多相关文章
- Android将Library上传到jcenter超简单完整图文步骤以及遇到的各
- Android从0到完整项目(1)使用Android(安卓)studio 创建项目详解
- 老项目代码从Eclipse迁移到AndroidStudio
- Android(安卓)Gradle系列-入门篇
- Your project contains error(s)... 如何解决?
- Activity状态保存
- Android(安卓)语音识别
- Android用户界面 UI组件--AdapterView及其子类(一) ListView及各
- Android(安卓)studio和码云步骤