前言

  学习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学习笔记索引

更多相关文章

  1. Android将Library上传到jcenter超简单完整图文步骤以及遇到的各
  2. Android从0到完整项目(1)使用Android(安卓)studio 创建项目详解
  3. 老项目代码从Eclipse迁移到AndroidStudio
  4. Android(安卓)Gradle系列-入门篇
  5. Your project contains error(s)... 如何解决?
  6. Activity状态保存
  7. Android(安卓)语音识别
  8. Android用户界面 UI组件--AdapterView及其子类(一) ListView及各
  9. Android(安卓)studio和码云步骤

随机推荐

  1. android 获取屏幕分辨率
  2. Ubuntu eclipse下android virtual device
  3. Android应用程序上传错误The package nam
  4. Android 技术用于汇总
  5. 传智播客Android视频教程——第六天
  6. 在Eclipse中导入android sdk源码
  7. android Textview属性细节以及EditText属
  8. Android Studio 更新问题
  9. Android 基础总结:(四)Activity(InstanceSta
  10. 补间动画--平移动画XML