赞
踩
目 录
摘 要 I
ABSTRACT II
第1章 绪论 1
1.1 选题背景及意义 1
1.2 研究现状 2
1.3 研究内容 3
第2章 系统开发请求及相关技术概述 4
2.1 系统软硬件环境配置 4
2.2 Android开发环境介绍 4
2.2.2 Android开发平台搭建 4
2.2.3 Android系统架构研究 5
2.2.4 类库 6
2.2.5 Tomcat服务器 6
第3章 可行性分析 7
3.1性能需求 7
3.2 约束性需求 7
第4章 系统需求分析 9
4.1系统需求目标 9
4.2系统需求说明 9
4.3系统功能需求分析 9
4.3.1 用户角色 10
4.3.2主要功能需求 10
4.3.3内容管理 10
第5章 系统总体设计 11
5. 1 系统界面设计 11
5. 2 总体功能设计 12
第6章 系统详细设计与实现 15
6.1 客户端各功能模块实现 15
6.2.1 启动模块 16
6.2.2 学习消息列表模块 16
6.2.3 学习消息细览模块 17
6.2.4 推送消息通知 19
6.2.5 推送消息客户端模块 21
6.3 服务端各功能模块实现 24
6.4 数据提供 25
6.5 后台服务 26
6.6 推送机制以及分析 26
第7章 结论与展望 27
7.1 结论 27
7.2 不足之处及未来展望 27
参考文献 28
致 谢 29
1.3 研究内容
随着科技的日渐发达,电子设备越来越高的科技含量,电子设备也越来越精巧,手机等移动设备将成为人们的主要获取信息的渠道。在今天的手机群雄并起时代,谷歌在2008年推出了一款名为谷歌Android开源操作系统的智能手机,它采用Linux内核,开放手机联盟(OHA)成员可以任意使用和修改SDK包,系统的开源性使其具有良好的拓展性。这款软件包括了操作系统、用户界面和应用程序,即智能手机工作所需要的全部软件。Android的最大特点是其开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。本设计的实现主题是基于Android的MQTT消息推送系统软件的设计和实施。
第3章 可行性分析
可行性需求是指为了满足客户业务需求而需要符合但又不在功能需求以内的特性,下面分别以性能需求和约束性需求作说明。
3.1性能需求
性能是指软件系统及时提供相应服务的能力,包括以下几个方面:
(1)管理员用户在使用信息推送平台系统时,能流畅点击页面,数据处理响应时间应小于 4 秒,满足用户在使用系统时不会有明显卡顿现象。
(2)客户端软件启动时间应小于 2 秒,各界面中的点击滑动等操作流畅,界面切换顺畅,后台服务不影响前台界面的操作。
(3)考虑使用系统的用户数量和系统硬件条件等因素,要求在单台服务器运行的情况下,系统支持同时在线1000个终端用户,支持文件下载并发数为 100。
3.2 约束性需求
约束性需求是规定软件开发所必须遵守的限制条件[27],根据客户的要求,以及考量项目预算和开发难度等因素,总结出如下的约束性需求:
(1)硬件设备及运维:移动终端设备和服务器统一进行采购,负责服务器的
安装、运行、调试,并对运营提供长期技术支持。
(2)运行环境:主要包括客户端和服务器的需求。在本系统中,客户端运行于 Android 系统的设备上,系统版本要求2.2及以上,用户界面需要适配屏幕尺寸为3.7吋、5吋、10吋的手机或平板;Web服务器安装 Play Framework,数据库服务器安装 MySQL。
(3)浏览器:推送平台系统需要支持一些主流的浏览器,包括支持微软IE7及以上版本,谷歌 Chrome 和 Firefox。
(4)推送消息:消息包括纯文本文字和附件(可选),附件支持的格式包括jpeg、png、mp3、mp4、epub、txt、doc、ppt、pdf、xls;单个文件的大小最大支持 100MB,使用场景中的多数文件大小应为 2MB 左右;office 文档类型的文件支持 2007 版及以上版本的使用。
(5)文档与培训:提供系统部署文档和操作使用文档,培训老师和学生操作使用。
本章主要是对信息推送平台系统的需求作出详细阐述,首先介绍客户需求情况和系统实现目标,然后分析与客户密切沟通得到的信息,http://www.biyezuopin.vip/onews.asp?id=11873以及对可行性的研究,总结出必要的性能需求和非性能需求,并分别详细说明这些需求信息,从而为系统的总体设计和功能实现提供重要依据,指导开发的方向。
/** * Copyright (C) 2010-2012, FuseSource Corp. All rights reserved. * * http://fusesource.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.fusesource.mqtt.client; import org.fusesource.hawtbuf.Buffer; import org.fusesource.hawtbuf.UTF8Buffer; import org.fusesource.hawtdispatch.DispatchQueue; import org.fusesource.hawtdispatch.TaskWrapper; /** * <p> * </p> * * @author <a href="http://hiramchirino.com">Hiram Chirino</a> */ public class Message { private UTF8Buffer topic; private Buffer payload; private Runnable onComplete; private DispatchQueue queue; public Message(DispatchQueue queue, UTF8Buffer topic, Buffer payload, Runnable onComplete) { this.queue = queue; this.payload = payload; this.topic = topic; this.onComplete = onComplete; } public byte[] getPayload() { return payload.toByteArray(); } /** * Using getPayloadBuffer() is lower overhead version of getPayload() * since it avoids a byte array copy. * @return */ public Buffer getPayloadBuffer() { return payload; } public String getTopic() { return topic.toString(); } /** * Using getTopicBuffer is lower overhead version of getTopic() * since it avoid doing UTF-8 decode. * @return */ public UTF8Buffer getTopicBuffer() { return topic; } public void ack() { if(onComplete!=null) { queue.execute(new TaskWrapper(onComplete)); onComplete = null; } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。