软件工程文档模板基于java的模拟手机系统.doc_第1页
软件工程文档模板基于java的模拟手机系统.doc_第2页
软件工程文档模板基于java的模拟手机系统.doc_第3页
软件工程文档模板基于java的模拟手机系统.doc_第4页
软件工程文档模板基于java的模拟手机系统.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西安欧亚学院西安欧亚学院 本科毕业论文 设计 本科毕业论文 设计 题题 目 目 学生姓名 学生姓名 指导教师 指导教师 所在分院 所在分院 专专 业 业 班班 级 级 二二 OOOO 年年 月月 西安欧亚学院本科毕业论文 设计 基于基于 Java 的模拟手机系统的模拟手机系统 摘要 摘要 随着社会的发展 移动通信设备在人们的生活中发挥了越来越大的作用 集成 Java 技术的移动电话 在未来可以为商务用户提供更具吸引力 更符合需求且 简单易用的无线数据服务 随着时间的推进 Java 微型版 J2ME 在移动设备方面 的应用会越来越广 J2ME 是一种把 Java 语言应用于嵌入式系统的软件开发模式 它定义了配置和 简表两个核心概念 它们共同构成了 J2ME 的体系结构 这些结构特性使 J2ME 非 常适合移动设备的程序设计 本文介绍了在基于 Java 2 Micro Edition J2ME 规范上开发一个手机的模拟系 统 该系统充分体现了 J2ME 的体系架构和各模块的特点 设计采用了面向对象的 方法 基本模拟实现了手机的部分功能 并着重讨论设计开发过程中的问题 关键字 关键字 J2ME 手机模拟 MIDP CLDC 西安欧亚学院本科毕业论文 设计 Mobile Phone System Simulation Java Based Abstract With the development of society mobile communications equipment have played an increasing role in people s lives Mobile phones of the integration java of technology provide business users with more attractive in the future and are more in line with demand and easy to use wireless data services With the advance of time Java Micro Edition J2ME mobile devices in the application will become more and more widely J2ME is a software development model that Java language used in the embedded systems which defines the configuration and a summary table as the two core concepts they constitute the J2ME architecture and these structural features are very suitable for J2ME programming for mobile devices These titles Java 2 Micro Edition J2ME based on specificly develop a simulation system for mobile phones The system fully demonstrates the J2ME architecture and the characteristics of each module designed with object oriented approach the basic analog part of the realization of the mobile phone functions and focused on the design and development issues in the process Keywords J2ME Phone Simulation MIDP CLDC 西安欧亚学院本科毕业论文 设计 目录目录 1 引言 1 1 1 论文研究背景与意义 1 1 2 本课题研究内容与目标 1 2 开发环境和相关技术介绍 2 2 1 JAVA语言的特点 2 2 1 1 平台无关性 2 2 1 2 安全性 2 2 1 3 面向对象 2 2 1 4 分布式 2 2 1 5 健壮性 2 2 2 本系统的开发环境 2 2 2 1 开发平台 Eclipse 2 2 2 2 开发环境 Wireless Tool Kit 3 2 3 本系统采用的编辑工具 3 2 4 J2ME 简介 3 2 5 MIDLET程序开发的基本方法 3 3 需求分析 5 3 1 对系统功能的定义 5 3 2 用例描述 5 3 2 1 用户拨打电话用例描述 5 3 2 2 用户短息发送用例描述 6 3 2 3 用户进行电话薄用例描述 6 3 2 4 用户进行计算器操作用例描述 6 3 2 5 用户进行动画演示操作用例描述 7 3 2 6 用户进行多媒体操作用例描述 7 3 2 7 用户进行聊天操作用例描述 7 4 概要设计 8 4 1 系统框架设计 8 4 2 对象 行为模型 8 5 详细设计 10 西安欧亚学院本科毕业论文 设计 5 1 用户界面的设计 10 5 1 1 PNG 图片格式 10 5 1 2 九宫格主菜单 10 5 1 3 主菜单实现的原理和过程 10 5 1 4 各功能界面的设计 11 5 1 5 主要类分析 11 5 2 拨打电话功能的设计 12 5 2 1 设计目标 12 5 2 2 类设计 12 5 2 3 主要代码分析 12 5 2 4运行效果 13 5 3 收发短息功能的设计 13 5 3 1 知识点介绍 13 5 3 2 设计目标 13 5 3 3 类设计 13 5 3 4 主要代码分析 14 5 3 5 运行效果 16 5 4 电话薄功能的设计 16 5 4 1 知识点介绍 16 5 4 2 设计目标 17 5 4 3 类设计 17 5 4 4 主要代码分析 18 5 4 5 运行效果 19 5 5 计算器功能的设计 19 5 5 1 设计目标 19 5 5 2 类设计 19 5 5 3 主要代码分析 19 5 5 4 运行效果 20 5 6 多媒体功能的设计 20 5 6 1 知识点介绍 20 5 6 2 设计目标 21 5 6 3 类设计 21 5 6 4 主要代码分析 22 5 6 5 运行效果 23 5 7 动画功能的设计 24 西安欧亚学院本科毕业论文 设计 5 7 1 设计目标 24 5 7 2 类设计 24 5 7 3 主要代码分析 24 5 7 4 运行效果 25 5 8 聊天功能的设计 25 5 8 1 知识点介绍 25 5 8 2 设计目标 25 5 8 3 类设计 25 5 8 4 主要代码分析 26 5 8 5 运行效果 27 6 系统测试 28 6 1 打包测试 28 6 2 内存优化问题 29 6 3 BUG 29 6 4 需完善的功能 30 7 结论 31 致谢 32 参考文献 33 西安欧亚学院本科毕业论文 设计 1 引言引言 1 1 论文研究背景与意义论文研究背景与意义 自 SUN 公司发布 J2ME 无线开发平台以来 基于 J2ME 的无线应用得到了很大 的发展 作为 Java 2 平台的一部分 J2ME 与 J2SE J2EE 一起 为无线应用客户端 和服务器建立了完整的开发和部署环境 但是由于受到无限移动设备内存 CPU 输入 输出设备等资源的限制 使得无线应用开发与桌面或企业应用开发有很大的不 同 J2ME 作为第一个面对小型设备的 Java 应用开发规范 CLDC 是由包括 Nokia Motorola 和 Siemens 在内的 18 家全球知名公司共同协商完成的 CLDC 是 J2ME 核心配置中的一个 可以支持一个或多个 profile 其目标主要面向小型的 网 络连接速度慢 能源有限 主要是电池供电 且资源有限的设备 如手机 PDA 等 而 CDC 则是主要用于运算能力相对较佳 在电力供应上相对比较充足的嵌入式装置 比方说冷气机 电冰箱 电视机机顶盒 set top box J2ME 有它顽强的生命力与优势 从现在来看移动应用还是比较简单的 随着 行业的发展 开发商必然会开发更强劲的应用出来 不论游戏还是商业应用 1 2 本课题研究内容与目标本课题研究内容与目标 本课题采用面向对象的方法 用 Java 模拟手机模型 Java 手机模拟系统是为了 适应互联网发展的需要 同时利用 Java 的多线程 安全性 平台移植性等特点开发 而成 本次毕业设计以 Java 手机模拟器的应用作为主线 介绍了 Java 手机模拟器的 设计思想和电话机的每个模块 包括拨号功能 收发短信 存储功能 多媒体 以 及动画等 其中用到了 J2ME 中最主要的技术有人机交互设计 多线程 多媒体技 术 Socket 技术 Message 技术等 本设计的应用程序是在 WINDOWS 操作系统下 在 Java 平台上开发和测试运行的 系统的界面是用 J2MEWTK 制作的 采用小程序 嵌入手机界面或者是手机仿真器中 本设计主要目标是了解 J2ME 的体系架构和学 习开发手机程序的基本流程 西安欧亚学院本科毕业论文 设计 2 开发环境和相关技术介绍开发环境和相关技术介绍 2 1 Java 语言的特点语言的特点 2 1 1 平台无关性平台无关性 Java 的一个显著优点就是运行时环境提供了平台无关性 它引进虚拟机原理 并运行于虚拟机 实现不同平台之间的 Java 接口 使用 Java 编写的程序能在不同的 平台运行 Java 的数据类型与机器无关 Java 规范中没有 依赖具体实现 1 的概 念 Java 中基本数据类型的大小及其算法都做了明确的规定 2 1 2 安全性安全性 Java 的编程类似 C 但舍弃了 C 的指针对存储器地址的直接操作 程序运 行时 内存由操作系统分配 这样可以避免病毒通过指针入侵系统 它提供了安全 管理器 防止程序的非法访问 2 1 3 面向对象面向对象 Java 吸收了 C 面向对象的概念 将数据和操作封装于类中 实现了程序的简 洁性和便于维护性 使程序代码可以只需一次编译就可反复利用 2 1 4 分布式分布式 Java 建立在 TCP IP 网络平台上 提供了用 HTTP 和 FTP 协议传送和接收信息 的库函数 使用其相关技术可以十分方便的构建分布式应用系统 2 1 5 健壮性健壮性 Java 致力与检查程序在编译和运行时的错误 并自动回收内存 减少了内存出 错的可能性 Java 取消了 C 语言的结构 指针 define 语句 多重继承 goto 语句 操作符 重载等不易被掌握的特性 提供垃圾收集器自动回收不用的内存空间 2 2 本系统的开发环境本系统的开发环境 在进行高效的系统开发之前 需要配置一个 J2ME 开发平台和开发环境 这里 采用开源的 Eclipse 平台和 Sun 公司的 J2ME 无线工具包 WTK Wireless Tool Kit 2 2 1 开发平台开发平台 Eclipse Eclipse 是一个开放源代码的 基于 Java 的可扩展开发平台 就其本身而言 它只是一个框架和一组服务 用于通过插件组件构建开发环境 幸运的是 Eclipse 附带了一个标准的插件集 包括 Java 开发工具 Java Development Tools JDT 虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用 但 Eclipse 的目标不仅 限于此 Eclipse 还包括插件开发环境 Plug in Development Environment PDE 这个组件主要针对希望扩展 Eclipse 的软件开发人员 因为它允许他们构建与 西安欧亚学院本科毕业论文 设计 Eclipse 环境无缝集成的工具 由于 Eclipse 中的每样东西都是插件 对于给 Eclipse 提供插件 以及给用户提供一致和统一的集成开发环境而言 所有工具开发人员都 具有同等的发挥场所 这种平等和一致性并不仅限于 Java 开发工具 尽管 Eclipse 是使用 Java 语言开 发的 但它的用途并不限于 Java 语言 例如 支持诸如 C C COBOL 和 Eiffel 等编程语言的插件已经可用 或预计会推出 Eclipse 框架还可作为和软件开发无关 的其他应用程序类型的基础 比如内容管理系统 Eclipse 是一个开放源代码的 基 于 Java 的可扩展开发平台 就其本身而言 它只是一个框架和一组服务 用于通 过插件组件构建开发环境 2 2 2 开发环境开发环境 Wireless Tool Kit WTK Wireless Tool Kit 是 Sun 公司针对 J2ME 推出的用于手机和 Palm 等移动 设备的开发包 是除手机厂商的专用开发包外唯一的手机模拟器开发包 它通用性 高 开发出的应用程序可保证能运行在大部分设备上 而不像专用厂商不具有一定 的兼容性 虽然它没有强大的功能和完善的调试手段 但它提供运行模拟器的最基 本组件 是其他 IDE 需集成采用的必备元素 2 3 本系统采用的编辑工具本系统采用的编辑工具 jdk 1 6 x 或 jdk 1 5 x sun java wireless toolkit 2 5 2 ml windows eclipse SDK 3 3 2 eclipseme feature 1 7 9 site 2 4 J2ME 简介简介 Sun Microsystems 公司将 J2ME 定义为 一种以广泛的消费性产品为目标的 高 度优化的 Java 运行时环境 包括寻呼机 移动电话 可视电话 数字机顶盒和汽车 导航系统 1999 年 6 月在 Java One Developer Conference 上声明之后 J2ME 进入了小型设 备开发的行列 J2ME 通过 Java 的特性 遵循 J2ME 规范开发的 Java 程序可以运行 在各种不同的小型设备上 Sun 公司希望借助 J2ME 这把利剑对嵌入式设备这个混 乱的领域进行统一 让 Java 的范围扩展到所有电子设备开发上 按照现在的发展速 度 J2ME 很快将被广泛应用于消费和嵌入式设备中 J2ME 主要适用于小型嵌入式设备 2 这些设备与 PC 或是服务器设备相比没有 统一的硬件标准 外观与操作方式 其功能也是千差万别的 但是 J2ME 在适用于 这些设备的同时也保留了 Java 的传统特性 即任何时候和任何地点的代码具有可移 植性 部署灵活性 安全的网络传输性 以及代码稳定性 西安欧亚学院本科毕业论文 设计 2 5 MIDlet 程序开发的基本方法程序开发的基本方法 如图 2 1 示在 MIDlet 程序 3 开发开发过程中 一般有以下几步 1 编编写写源源文文件件 2 编编译译预预校校验验 3 模模拟拟 4 打打包包 java c cl la as ss s class jar 声声音音图图片片文文件件 清清单单文文件件 图 2 1 MIDlet 程序开发的基本方法 a 编写源代码 生成 java 文件 b 编译 预校验 生成 class 文件 c 在模拟器上运行并测试 d 打包生成 jar 文件 西安欧亚学院本科毕业论文 设计 3 需求分析需求分析 3 1 对系统功能的定义对系统功能的定义 该系统具有的基本操作的描述如下 a 拨打电话 b 短信发送 c 电话薄 d 计算器 e 简单聊天 f 多媒体演示 g 动画演示 手机模拟系统的 User Case 4 如图 3 1 用户 短信发送 电话簿 多媒体 聊天 动画 拨打电话 计算器 图 3 1 User Case 3 2 用例描述用例描述 3 2 1 用户拨打电话用例描述用户拨打电话用例描述 引言 西安欧亚学院本科毕业论文 设计 用户进行模拟打电话操作 主事件流 用户在界面上选择 打电话 的图标按钮时 用例开始 用户通过按键输入电 话号码 按 拨打电话 按钮进行拨号 若电话号码不可以使用 系统提示拨打异 常 若可用则提示成功 异常事件流 用户可以在打电话主界面按 返回 按钮时 该用例结束 异常事件流 用户按 拨打电话 按钮进行提交时 若用户输入的电话号码不能使用时系统 提示拨打异常 若可用则提示成功 3 2 2 用户短息发送用例描述用户短息发送用例描述 引言 用户进行模拟短息的发送和接收操作 主事件流 用户在界面上选择 收发短信 的图标按钮时 用例开始 用户通过按键选择 是 发短信 还是 收短信 若是发短信则输入收信人号码和发送内容 若发送 成功 在收信人处会提示接收到信息 否则返回当前界面 若选择收短信 处于接 收信息状态 若收到信息则提示收到信息 否则放回上一界面 异常事件流 用户可以在收发短息主界面按 返回 按钮时 该用例结束 异常事件流 用户按 发信息 成功 则收信人处会提示接收到信息且都返回当前界面 3 2 3 用户进行电话薄用例描述用户进行电话薄用例描述 引言 用户进行电话薄操作 主事件流 用户在界面上选择 电话薄 的图标按钮时 用例开始 用户通过按键选择 电话本 若在选择 添加电话 按钮 用户输入姓名和电话 按确定则添加成 功 若选择 删除电话 按钮和选中电话 则删除电话成功 异常事件流 用户在电话薄主界面按 返回 按钮时 该用例结束 3 2 4 用户进行计算器操作用例描述用户进行计算器操作用例描述 引言 用户进行计算器操作 主事件流 西安欧亚学院本科毕业论文 设计 用户在界面上选择 计算器 的图标按钮时 用例开始 用户通过方向键选择 需要的运算符和运算数 并选择 得到结果并显示在屏幕上 异常事件流 用户可以在计算器主界面按 返回 按钮时 该用例结束 3 2 5 用户进行动画演示操作用例描述用户进行动画演示操作用例描述 引言 用户进行动画演示操作 主事件流 用户在界面上选择 动画 的图标按钮时 用例开始 用户通过暂停和继续按 钮来控制小球的大小计位置 异常事件流 用户可以在动画演示主界面按 返回 按钮时 该用例结束 3 2 6 用户进行多媒体操作用例描述用户进行多媒体操作用例描述 引言 用户进行多媒体操作 主事件流 用户在界面上选择 多媒体 的图标按钮时 用例开始 用户通过选择播放视 频的路径 找到要播放的视频文件 在进行进一步操作 异常事件流 用户可以在 多媒体 主界面按 返回 按钮时 该用例结束 3 2 7 用户进行聊天操作用例描述用户进行聊天操作用例描述 引言 用户进行聊天操作 主事件流 用户在界面上选择 聊天 的图标按钮时 用例开始 用户通过选择自己是服 务器还是客户端并确定通信端口 在进行服务器和客户端之间的通信 异常事件流 用户可以在 聊天 主界面按 返回 按钮时 该用例结束 西安欧亚学院本科毕业论文 设计 4 概要设计概要设计 4 1 系统框架设计系统框架设计 该系统分为七大功能模块 都是在 Windows 平台下模拟实现的 具体含有客户 端 服务器 本系统的所有功能中所涉及的客户端和服务器 5 都是在本地连接上 业务逻辑层 主要负责与客户端服务器端通信 处理业务数据等功能 具体的主要系统框架如图 4 1 所示 客户端业务逻辑层服务器 图 4 1 系统框架 4 2 对象对象 行为模型行为模型 用户通过主界面菜单和用户界面导航 可以进行各种操作 用户的操作都是通 过选择或输入数据 然后由类发送请求并调用相应的业务逻辑方法 将结果返回给 客户端或返回错误的响应代码 具体的对象 行为模型如图 4 2 所示 用户界面类连接类业务逻辑类 提交请求 调用逻辑方法 返回结果 返回结果 图 4 2 对象 行为模型 4 3 系统状态变迁图系统状态变迁图 西安欧亚学院本科毕业论文 设计 当用户启动应用程序后 用户可以进行各种操作 当用户选择退出时 退出应 用程序 具体的系统状态变迁图如图 4 3 所示 进入系统 启动 退出系统 启动 退出 销毁 图 4 3 系统状态变迁图 西安欧亚学院本科毕业论文 设计 5 详细设计详细设计 5 1 用户界面的设计用户界面的设计 用户界面是应用程序用于与用户进行交互 6 MIDP2 0 提供了丰富的高级 GUI 和低级 GUI 组件以及事件处理机制 可构建直观的用户界面 5 1 1 PNG 图片格式图片格式 PNG Portable Network Graphics 格式是 MIDlet 唯一支持的图像格式 PNG 具体 格式由 PNG Specification Version 1 0 定义的 PNG 格式提供透明背景的图像 这 对绘制九宫格界面极有帮助 使用 Image 类中的 createImage 函数可从屏幕上画图 5 1 2 九宫格主菜单九宫格主菜单 在 MIDP 图形用户界面组件中 List 非常适合做菜单 其可移植性非常出色 不足之处在于表现形式比较单一 对用户的视觉冲击不够 本科课题的主菜单采用 九宫格的设计方案 可以弥补以上的不足 九宫格主菜单的具体内容如图 5 1 所示 图 5 1 系统主菜单 5 1 3 主菜单实现的原理和过程主菜单实现的原理和过程 a 准备一张 PNG 图片 上面绘制 9 个表示各个功能的小图标 b 用 Image createImage 28 28 创建 9 个小图片 再转换坐标绘制九个小图片 代码如下 西安欧亚学院本科毕业论文 设计 try for int k 0 k 9 k img k Image createImage img k png 创建9个小图片 catch Exception ex ex printStackTrace c 定位九个图片具体位置 手机菜单要适合不同的手机屏幕 所以表示功能的 小图片要设计得大小适宜 定位算法 手机 X 轴定位 单元格宽 i 3 单元格宽 小图片宽 2 手机 Y 轴定位 单元格高 i 3 单元格高 小图片高 2 d 当用户用上下键有左右键时 可以选择菜单功能 主要是产生 0 到 8 这九个 数字 5 1 4 各功能界面的设计各功能界面的设计 用户可以从主菜单点确定进入任何一个功能界面 且每一个显示界面值可以完 成一个单一的简单的功能 应用程序中的大部分事件处理都是由两个动作发出的 下一步 或提交 和返回 或取消 下一步是指完成了当前的任务 需要进入下一 个界面 返回是指返回到当前界面的前一个界面 在 UI 的构造器中将前面或后面的 界面传递到当前对象 用这个方法来解决前进或后退的问题虽然可行 但这样做会 导致界面之间的耦合度大大提高 如果需求发生变化 重构的工作量较大 程序不 易维护 所以在这里用到了回调的模式 7 加强程序的封装性 提高了程序的独立 性 5 1 5 主要类分析主要类分析 以下是主菜单所需要的类之间的关系如图 5 2 MenuCanvasmyCanvas Canvas PhoneSystem 图 5 2 系统主菜单类间关系 a Canvas 类 8 系统自定义类 西安欧亚学院本科毕业论文 设计 为了能有程序开发人员控制接口的外观和行为 需要使用大量的初级用户接口 类 尤其在界面开发中 几乎完全依赖的就是 Canvas 抽象类进行绘图 从程序开发 的观点看 Canvas 类可与高级 Screen 类交互 程序可在需要时在 Canvas 中掺入高 级类的组件 Canvas 提供了键盘事件 并定义了允许将键盘按键映射为游戏控制键 的函数 键盘事件由键代码指定 应当将键代码转换为游戏键的代码 以便硬件开 发商能定义他们自己的键布局 b myCanvas 类 该类继承了 Canvas 类 实现九宫格主菜单的画法 可用于键盘控制选择菜单 方便了用户操作 c PhoneSystem 类 该类是系统的主类 继承了 javax microedition midlet MIDlet 负责创建程序的 主菜单 并启动应用程序 d MenuCanvas 类 该类实现不同功能界面与主界面的连接 5 2 拨打电话功能的设计拨打电话功能的设计 5 2 1 设计目标设计目标 为用户提供发送打电话的功能 5 2 2 类设计类设计 该功能的实现由一个类实现 它与系统类之间关系如图 5 3 Form CallDemo CommandListener 图 5 3 拨打电话类间关系 a From 类 系统自定义类 From 类是 Screen 的子类 其对象是 Item 组件的容器 可以直接设置在屏幕上 Item 组件不可以直接设置在屏幕上 需要放置在一个 From 对象上才可以显示在屏 幕上 b CommandListener 接口 CommandListener 接口主要是为显示对象添加命令按钮的监听器 这样用户在 西安欧亚学院本科毕业论文 设计 按下命令按钮式 才会触发命令按钮的处理代码 其定义了一个 CommandAction 方法 c CallDemo 类 主要实现打电话界面 其获取输入的电话号码并进行拨打 5 2 3 主要代码分析主要代码分析 该类主要调用了 MIDlet 的一个 platformRequest 方法 主要用于申请设备区处 理指定的操作 其在程序中的使用如下 midlet platformRequest tel tfPhoneNumber getString 由于在模拟器上不可以运行 因为拨打电话需要调用手机中的电话程序 在这 里对其进行异常的处理 5 2 4运行效果运行效果 图 5 4 打电话主界面 图 5 5 提示界面 5 3 收发短息功能的设计收发短息功能的设计 5 3 1 知识点介绍知识点介绍 本功能的设计用到无线消息 API2 0 JSR205 规范定义的可选包 9 它提供了发 送 接收无限消息的功能 无线消息 API 定义在 javax wireless message 包中 该包定义了 6 个接口 2 个 类 本功能主要用到 MessageConnection Message TestMessage MessageListener 四个接口 其具体内容在此不做详细介绍 其详情可以参看无线消息 API 5 3 2 设计目标设计目标 a 发送短息 为用户提供文本消息编辑器 并把编辑后的文本消息发送到指定 的地址 西安欧亚学院本科毕业论文 设计 b 接收短信 当应用程序运行时 可以接收文本消息 当短消息到来时提示用 户查看 5 3 3 类设计类设计 该功能主要有四个类 SMSMIDlet SenderFrom Receive Inbox 它们之间的 关系图下图 5 6 Inbox SenderFromSMSMIDlet Receive 图 5 6 收发短息类间关系 a SMSMIDlet 类 该类是本功能的主类 实现了 CommandListener 接口 可处理 返回 选择 等用户界面 本类还定义了下面的方法 public void showError String errMsg 显示错误信息 public void notifyUser 提示用户有新的消息到达 b SenderFrom 类 该类提供了编辑短消息的界面和发送短信的功能 发送无线消息是在一个线程 中完成的 每当用户发送一条消息时 该类都会创建一个新的消息发送线程 这可 以避免阻塞用户界面 c Receiver 类 该类提供了打开短信连接及接收短信的功能 当打开消息连接时 该类将创建 并启动一个接收消息的线程 如果没有消息到达 那么该线程处于等待状态 当有 消息到达时 可以调用 handlMessage 方法通知线程接收信息 线程把消息存储到 收件箱中 通知用户查看 d Inbox 类 该类描述了收件箱 提供了查看接收的短信的功能 该类提供了添加信息 显 示信息 浏览信息等功能 该收件箱只能接收文本类型的消息 5 3 4 主要代码分析主要代码分析 a 创建无线消息连接 客户端 西安欧亚学院本科毕业论文 设计 msgConn MessageConnection Connector open sms receiverAddress desPort 服务器端 msgConn MessageConnection Connector open sms port b 发送无线消息 发送过程如下 1 创建无限消息客户端连接 2 调用连接对象的newMessage方法创建一个消息对象 3 设置消息对象的内容 4 使用连接对象的send方法发送消息 代码演示 public void run try 建立连接 String smsUrl sms receiverAddress desPort MessageConnection msgConn MessageConnection Connector open smsUrl 创建文本消息 TextMessage textMessage TextMessage msgConn newMessage MessageConnection TEXT MESSAGE textMessage setPayloadText messageContent 发送消息 msgConn send textMessage 关闭连接 msgConn close catch IOException e TODO Auto generated catch block midlet showError 发送消息错误 n e toString c 接收无线消息 接收无限消息过程如下 1 创建无限消息服务器端连接 2 设置消息监听器 3 当消息到达时 监听器将回调MessageListener接口中notifyIncomingMessage 西安欧亚学院本科毕业论文 设计 方法 并调用recive方法接收消息 代码演示 创建连接 msgConn MessageConnection Connector open sms port 接收消息 Message message msgConn receive 判断是否是文本消息 if message instanceof TextMessage inbox add TextMessage message midlet notifyUser 5 3 5 运行效果运行效果 图5 7 发件箱 图5 8 提示信息 西安欧亚学院本科毕业论文 设计 图5 9 收到信息提示 图5 10 收件箱 5 4 电话薄功能的设计电话薄功能的设计 5 4 1 知识点介绍知识点介绍 本功能用到了记录管理系统 Record Management System RMS 它提供了本地 数据持久化存储机制 简单的讲就是一个简单的面向记录的数据库 Javax microedition rms 包提供了操作这个数据库的类和接口 本功能中主要用到 RecordStore 类 它的对象表示一个记录存储区 一个记录存 储区总是和一个 MIDlet 套件相关联 主要提供了管理 操作记录存储去的各种方法 5 4 2 设计目标设计目标 a 实现联系人和电话号码的存储 但程序关闭时记录自动销毁 b 实现对电话记录的添加以及删除 c 显示全部电话记录 5 4 3 类设计类设计 该功能包含 5 个类 其关系如下图 5 11 西安欧亚学院本科毕业论文 设计 PhoneListPhoneText RMSOpe WelcomeCanvas AddForm 图 5 11 电话薄功能类关系 a WelcomeCanvas 类 电话薄主界面类 该类实现电话薄的主界面 并实现 CommandListener 接口 处理返回 退出等按钮 b PhoneText 类 实现显示电话簿的所有记录 c PhoneList 类 实现对电话记录的录入 删除操作 d AddFrom 类 实现添加电话记录界面以及添加电话方法 e RMSOpe 类 该类实现对 RMS 记录集的打开 关闭 以及为其添加和删除记录 主要方法 public void OpenRecordStore 打开记录集 public void addPhone String name String Phone 为记录集添加记录 public void delPhone String str 删除记录集记录 public Vector getAllPhone 获取记录集信息 public void CloseRecordStore 关闭记录集 5 4 4 主要代码分析主要代码分析 删除记录集记录 public void delPhone String str int lastId 0 try 西安欧亚学院本科毕业论文 设计 lastId rs getNextRecordID 获取记录集的编号 catch Exception e1 e1 printStackTrace for int i 0 i lastId i 循环查找记录 byte b try b rs getRecord i 获取记录信息 String RecordStr new String b if RecordStr equals str 判定记录信息是否与str相等 rs deleteRecord i 删除记录集 catch Exception e TODO Auto generated catch block e printStackTrace 5 4 5 运行效果运行效果 西安欧亚学院本科毕业论文 设计 图5 12 收到信息提示 图5 13 收件箱 5 5 计算器功能的设计计算器功能的设计 5 5 1 设计目标设计目标 a 提供虚拟输入键盘 用户可以通过方向键输入数据 进行计算 b 计算器可以进行加 减 乘 除运算 c 可以进行连续的混合运算 5 5 2 类设计类设计 本功能有 2 个类 关系如下图 5 14 CalcCanvas CalcMIDlet 图 5 14 计算器功能类关系 a CaleMIDlet 类 实现计算器的主界面 b CalcCanvas 类 进行按键处理 实现加 减 乘 除运算 5 5 3 主要代码分析主要代码分析 绘制焦点矩形 绘制焦点矩形 西安欧亚学院本科毕业论文 设计 g 图形对象 num 焦点编号 private void drawFocus Graphics g int num 设置绘制颜色为红色 g setColor 255 0 0 设置焦点的 X 和 Y 坐标 setXandYByNum num 绘制选择框 g drawRect focusX focusY buttonWidth buttonHeight 5 5 4 运行效果运行效果 图 5 15 计算器界面 5 6 多媒体功能的设计多媒体功能的设计 5 6 1 知识点介绍知识点介绍 本功能用到了移动多媒体 API Mobile Media API 和文件系统 FileConnection MMAPI 框架有一个管理器 一个数据源 一个播放器和若干个控制器组成 其中播放器是核心 它们关系如下图 5 16 西安欧亚学院本科毕业论文 设计 管理器 播放器控制器数据源 图 5 16 MMAPI 框架 FileConnection 可以访问设备本地系统根目录中的文件 并且其可以访问各种存 储卡中的文件 5 6 2 设计目标设计目标 a 当用户选择 打开视频文件 选项时 在屏幕上显示文件对话框 在文件对话 框中列出当前目录下所有的子目录或和 MPEG 格式的视频文件 用户可以选择打开 一个视频文件 也可以选择进入子目录或者返回上一级目录 文件对话框第一次显 示时 将列出移动设备中所有文件系统的根目录 b 当用户打开一个视频文件是 将启动播放器 在屏幕上播放选择的视频文件 在播放过程中 用户可以通过屏幕上的命令暂停播放和继续播放视频 用户还可以 通过下方的方向键改变音量 向上和向右表示增大音量 向下和向左表示减小音量 c 用户可以停止播放视频 返回播放器主菜单 再次打开文件对话框 打开视 频文件 5 6 3 类设计类设计 该功能包含 4 个类和一个接口 一个控制器类 MobilePlayer 一个视图类 VedioCanvas 一个视频播放器类 VedioPlayer 以及一个文件对话框 VedioFileDialog 类和文件对话框命令接口 VedioFileDialogListener 其关系如下图 5 17 VedioPlayer VedioFileDialogListener MobilePlayer VedioCanvas VedioFileDialog 图 5 17 多媒体功能类关系 西安欧亚学院本科毕业论文 设计 a MobilePlayer 类 该类实现了 PlayerListener 接口 可以监控视频播放器的变化 同时还实现了 CommandListener 接口 处理播放 暂停等命令 b VedioPlayer 类 该类描述视频播放的过程 为了避免播放视频时阻塞用户界面线程 视频的播 放过程在一个线程中完成的 c VedioCanvas 类 该类用于显示视频播放界面并确定用方向键音量改变 d VedioFileDialog 类 该类定义视频文件对话框 并查找和显示系统根目录 还获取视频文件列表 5 6 4 主要代码分析主要代码分析 a 创建播放器 private static final String MPEG TYPE video mpeg player Manager createPlayer is MPEG TYPE player addPlayerListener midlet is 是多媒体数据的输入流 MPEG TYPE 表示多媒体文件类型为 MPG 格式文 件 b 播放视频 视频播放时需要获取视频控制器 它控制视频的显示 传输数据 player realize 获取播放资源 player prefetch 获取视频控制器 VideoControl videoControl VideoControl player getControl VideoControl 初始化视频显示模式 videoControl initDisplayMode VideoControl USE DIRECT VIDEO canvas int x canvas getWidth videoControl getDisplayWidth 2 int y canvas getHeight videoControl getDisplayHeight 2 videoControl setDisplayLocation x y videoControl setVisible true c 音量改变 定义音量控制器 private VolumeControl volumeControl public void changeVolume int value 西安欧亚学院本科毕业论文 设计 if volumeControl null 获取音量大小 int val volumeControl getLevel value 设置音量大小 if val 80 模拟器测试中 音量过85会报异常 volumeControl setLevel 80 else volumeControl setLevel val 5 6 5 运行效果运行效果 图5 18 播放器主界面 图5 19 选择文件 西安欧亚学院本科毕业论文 设计 图5 20 读取数据界面 图5 21 播放界面 5 7 动画功能的设计动画功能的设计 5 7 1 设计目标设计目标 本功能是实现一个模拟弹跳小球的动画 且在弹跳过程中其大小改变 5 7 2 类设计类设计 本功能主要有 BallCanvas 其实现弹跳小球界面以及运动过程 其主要用到了 线程的知识 5 7 3 主要代码分析主要代码分析 改变小球大小线程的使用 public void run while RUN if DIR 1 判断小球运动方向是否向下 top 3 设置小球位置 d 减小小球半径 if top this getHeight d 判断小球是否到达了屏幕顶端 DIR 2 if DIR 2 判断小球运动方向是否向上 top 3 d 增加小球半径 if top 0 判断小球是否到达了屏幕底部 西安欧亚学院本科毕业论文 设计 DIR 1 repaint 重画小球 try Thread sleep 100 睡眠等待 100ms catch InterruptedException e e printStackTrace 5 7 4 运行效果运行效果 图5 22 动画界面 5 8 聊天功能的设计聊天功能的设计 5 8 1 知识点介绍知识点介绍 本功能用到 Socket 网络套接字 它是网络连接中常用的连接方式 这里主要 用到了 ServerSocketConnection SocketConnection 二个接口 5 8 2 设计目标设计目标 实现一个客户端 服务器的简单聊天 5 8 3 类设计类设计 本功能主要含有 4 个类 其关系如下图 5 23 西安欧亚学院本科毕业论文 设计 SocketMIDlet SenderServerClient 图 5 23 聊天功能类 a SocketMIDlet 类 主要用户显示当前聊天界面 b Server 类 用于建立服务器 ServerSocketConnection 连接 并启动 socket 监听程序 等待客 户端连接 c Client 类 该类获取服务器的 IP 和端口 建立客户端与服务器的连接变返回 SocketConnection d Sender 类 主要实现消息发送 利用线程避免死锁 5 8 4 主要代码分析主要代码分析 a 服务器监听端口 监听端口 scn ServerSocketConnection Connector open socket portString 等待客户端连接 若无客户端连接 程序在这里阻塞 sc SocketConnection scn acceptAndOpen b 客户端连接服务器 连接到服务器端 sc SocketConnection Connector open socket localhost portString c socket 通信 获取输出流 DataOutputStream dos sc openDataOutputStream 写数据 dos writeUTF 你好 获取输入流 DataInputStream dis sc openDataInputStream 西安欧亚学院本科毕业论文 设计 显示输入流数据 System out println dis readUTF 5 8 5 运行效果运行效果 图 5 24 聊天主界面类 图 5 25 服务器界面 图 5 26 客户端界面 西安欧亚学院本科毕业论文 设计 6 系统测试系统测试 6 1 打包测试打包测试 使用 Eclipse 完成代码的调试之后 需要生成包 即 jar 和 jad 文件 其过程如下 首先 使用 Eclipse 的新建工程功能建立一个新工程 要求与 Eclipse 工作区下的项 目名称 MIDlet 类名相同 图 6 1 图 6 1 新建

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论