




已阅读5页,还剩71页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
成都理工大学工程技术学院毕业论文 基于基于 AndroidAndroid 手机应用开发程序手机应用开发程序 设计设计 学生系统学生系统 作者姓名 彭应智 专业名称 11 级通信工程 指导教师 李湘文 讲师 基于 Android 手机应用开发程序设计 摘要摘要 本文研究分析了 Android 平台的系统架构和组件模型 接着解析 了 Android 新技术 HTML5 在此基础上 基于 Android 平台设计和 开发手机快捷学生信息查询软件 本系统界面友好 操作便捷 具有 良好的可扩展性和可维护性 系统经过测试 可以稳定运行 能够满足 手机用户的基本需求 本系统采用 C S 架构 使用 Java 搭建服务器 其中使用 hibernate 构建持久层 使用 FastJSON 把对象编译成 JSON 数据 利用 Servlet 向客户端发送 使用阿里云数据库作为网络数据库 移动端是使用新兴技术 HTML5 进行书写 该技术使用 HTML5 CSS JS 进行书写 通过 HTML5 SDK 编译可以同时生成 Android 平台 APP 和 IOS 平台 APP 下载地址 System download html 关键词关键词 学生系统 Android HTML5 基于 Android 手机应用开发程序设计 I AbstractAbstract Intelligent mobile phone with a step by step into the lives of ordinary people it will become the main device to obtain information Therefore services of mobile phone will have great development space fast query mobile phone software is one of them The Android platform offers users very convenient and quick query function which will provide quick query design and implementation of service provides a better platform In addition Android platform is basically free so can effectively reduce the cost of software finally let each user will be free to get information but also contribute to the popularity of mobile phone quick query service This paper analyzes the system architecture and the component model of Android platform and then analyze the new technology of Android HTML5 On this basis based on the Android platform design and development of mobile phone quick student information query system The system has friendly interface convenient operation has good scalability and maintainability system has been tested can stable operation to meet the basic needs of mobile phone users Keywords Student system Android HTML5 基于 Android 手机应用开发程序设计 II 目录目录 摘要 I Abstract II 目录 III 前言 1 1 简介 2 1 1 系统简介 2 1 2 安卓简介 2 2 技术概述 6 2 1 安卓端开发技术 6 2 1 1 HTML5 6 2 1 2 Mui 7 2 1 3 Ajax 7 2 1 4 JS 8 2 1 5 JSON 10 2 2 Web 服务器端开发技术 12 2 2 1 Servlet 12 2 2 2 Hibernate 14 2 2 3 Fastjson 16 2 3 数据库技术 17 2 3 1 MySQL 数据库 17 2 3 2 SQL 18 3 学生系统分析与设计 19 3 1 需求分析 19 3 1 1 目标 19 3 1 2 需求陈述 19 3 1 3 ER 图 19 3 1 4 数据字典 25 3 2 数据库设计 25 3 2 1 数据库需求分析 25 3 2 2 数据库设计图 25 3 2 3 数据库逻辑结构设计 26 4 程序设计 29 4 1 服务端设计 29 4 1 1 目录结构 29 4 1 2 模块设计 31 基于 Android 手机应用开发程序设计 III 4 2 移动端设计 33 4 2 1 目录结构 33 4 2 2 登录模块设计 35 4 2 3 设置模块设计 35 4 2 4 主界面设计 36 4 2 5 公告详情设计 36 4 2 6 成绩查询设计 36 4 2 7 图书查询设计 36 4 2 8 图书详情设计 37 4 2 9 快递模块设计 37 4 2 10 个人信息设计 37 5 系统测试 38 5 1 系统测试的目标 38 总结 39 致谢 41 参考文献 42 附件 1 数据字典 43 附件 2 数据库设计 49 附件 3 系统测试结果 57 基于 Android 手机应用开发程序设计 0 前言前言 当今社会的生活节奏越来越快 人们对手机的要求也越来越高 由于手机市场发展迅速 使得手机操作系统也出现了不同各类 现在 的市场上主要有三个手机操作系统 Windows mobile symbian 以及 谷歌的 Android 操作系统 其中占有开放源代码优势的 Android 系统有 最大的发展前景 在学校绝大多数学生均拥有自己的手机 故而如果我们拿出手机 即可查询学校与我们有关各种信息岂不快乎 为此笔者在此为大家提 供一款方便快捷的查询软件是具有不错的意义的 可方便学生随时随 地查看学校相关的各种信息 如 课程信息 成绩信息 图书信息 个人信息 快递信息等 本文是说明一个以 MYSQL 数据库与 J2EE 搭建的服务器和以 HTML5 为开发技术的移动端的综合查询服务移动 APP 使用稳健的 java 企业级开发搭建服务器 快捷 稳定 安全 使用 hibernate 加快 数据库查询速度 方便快捷 使用阿里巴巴公司的 FastJSON 进行快速 的 JSON 编译 使用新兴技术 HTML5 作为移动端开发技术 方便 快捷 开发成本低 使用 Mui 前端框架 实现统一 快捷 美观的应 用界面搭建 基于 Android 手机应用开发程序设计 1 1 1 简介简介 1 1 系统简介系统简介 在学校 教务管理系统是大家常逛的学校网站之一 因为在这里有大家关心 的成绩 选修课等相关信息 其次是学校咯大的图书馆 要找寻自己心仪的书 是比较花费时间 故而图书馆系统也是相对爱逛的系统之一 最后是学校快递方 面是比较空白的 除了常逛 BBS 或没事去去快递室的人员之外 学校快递尤其 是 EMS 快递的通知是极其不到位的 而今 本人的学生系统移动客户端 是一个以学生为核心 满足学生在校的 各种需求 如 成绩查询 图书查询 课程表查询 邮件查询 公告查看等 也 就是说 本人将以上三大块进行了融合 产生出该设计的灵感 经过分析得知 本 APP 是一个需要联网 多个客户端共享数据的模式 所 以我们需要一个统一的服务器来处理他们的请求 给予他们需要的数据和服务 在这里笔者选择使用我们的 J2EE 技术来开发服务器 将各种数据封装成为对象 便于操作和处理 服务器与客户端使用当下主流数据传输格式 JSON 这种格式 的传输速度快 具有跨平台性 可读性 因为本系统是一个网络应用 要使用网络来请求我们的服务器 服务器再对 数据库进行操作 既在服务端对数据的相关管理操作 在移动端主要进行相关的 查询 故而本系统结构模式如图 1 1 所示 移动终端服务器 数据库 图 1 1 模式结构 本论文重点为移动 APP 的开发 故服务器对数据库的操作不为本文内容 但因本系统涉及对数据的查询操作 所以本系统需要说明如何对数据库访问 并 整合数据使用 JSON 向移动 APP 提供数据 基于 Android 手机应用开发程序设计 2 在移动端使用 HTML5 技术为核心 mui 为控件框架 为用户在各个界面搭 建统一的界面风格 舒适的使用环境 HTML5 这是一个新兴技术 该技术既 有开发简易 跨平台性 笔者使用该技术进行我们的开发 界面的样式使用 mui 框架 统一规范的进行界面设计 本系统界面主打清爽 干净 简约的风格 1 2 安卓简介安卓简介 Android 基本上就是一种嵌入式 Linux 系统再加上一些重要的手机 应用开发软件 如果深入研究其系统架构 其整体自底向上由 4 个主 要层次构成 包括 Linux Kernel Linux 内核层 Library 函数库 和 Android Runtime Android 运行时库 Application Framework 应 用软件架构 Application 应用程序 如图 1 1 所示 图 1 1 Android 系统架构 1 Linux Kernel Linux 内核层 Android 基于 Linux2 6 提供 核心系统服务 负责硬件的驱动程序 网络堆栈 电源 系统安全机 制 进程管理以及内存管理等功能 Linux Kernel 也作为硬件和软件之 间的抽象层 它隐藏具体硬件细节而为上层提供统一的服务 分层的 基于 Android 手机应用开发程序设计 3 好处就是使用下层提供的服务而为上层提供统一的服务 屏蔽本层及 以下层的差异 当本层及以下层发生了变化不会影响到上层 特别的 是 这个内核操作系统并非 GUN Linux 的 所以其系统库 系统初始 化和编程接口都喝标准的 Linux 系统有所不同 它没有采用虚拟内存 文件系统 而是采用 YAFFS2 文件系统 2 Library 函数库 和 Android Runtime Andriod 运行时库 Library 函数库 由大多数开放源代码的函数库组成 包含一个 C C 库的集合 供 Android 系统的各个组件使用 这些功能通过 Android 的应用程序框架 Application Framework 展示给开发者 例 如准 C 函数库 Libc OpenSSL SQLite 等 网页函数库 WebKit 负责 Android 网页浏览器的运行 媒体库基于 PacketVideo 的 OpenCORE 这些库支持播放和录制许多流行的音频和视频格式 以及静态图像文 件 包括 MPEG4 H 264 MP3 AAC AMR JPG PNG 界面管 理 管理访问显示子系统和无缝组合多个应用程序的二维和三维图像 层 LibWebCore 新式的 Web 浏览器引擎 驱动 Android 浏览器和内 嵌的 Web 视图 SGL 基本的 2D 图形引擎 3D 库 基于 OpenGL ES1 0 APIs 的实现 所有应用程序都可以使用的强大而轻量级 的关系数据库引擎 Android Runtime Android 运行时库 是和 Library 函数库 并 行的 在此提供的 Android 特有的 Java 内核函数库与可转换的 Java 运 行码 Bytecode 为 Android 专属的 Dalvik Executable dex 文件格式 的 dalvik 虚拟机 可以通过 Java 语言编写 Android 应用程序 并在 Android 平台上同时运行多个 Java 应用程序 Dalvik 虚拟机依赖于 Linux 内核提供的基本功能 如线程和底层内存管理 Dalvik 虚拟机可 执行文件格式是 dex dex 格式是专为 Dalvik 设计的一种压缩格式 适 合内存和处理器速度有限的系统 大多数虚拟机包括 JVM 都是基于栈 的 而 Dalvik 虚拟机基于寄存器的 3 Application Framework 应用软件架构 它是所有 Android 重点应用程序 Framwork API 的总集合 主要的目的是让程序开发者可 基于 Android 手机应用开发程序设计 4 以更方便地使用这些常用的应用程序进行设计架构 以便更快速地开 发 Android 应用程序 而这些常见的 API 有显示功能 如消息方块 条列消息 按钮 内嵌式浏览器等 消息提供功能 如访问信息 分 享信息 资源管理功能 如图形 地方化字符串 布局文件等 提供 消息功能 主要用来显示警告消息 特别是当使用者操作错误时 等 其它功能 所有的应用程序其实是一组服务和系统 包括视图 丰富的 可 扩展的视图集合 可用于构建一个应用程序 包括列表 网格 文本 框 按钮 甚至是内嵌的网页浏览器 内容提供者 使应用程序能访 问其它应用程序的数据 或者共享自己的数据 资源管理器 提供访 问非代码资源 如本地化字符串 图像和布局文件 通知管理器 使 所有的应用程序能够在状态栏显示自定义警告 活动管理器 管理应 用程序生命周期 提供通用的导航回退功能 4 Application 应用程序 最上层的应用程序都是用 Java 语 言开发的应用程序 例如 Google Maps 即时通信工具 E mail 浏览 器 计算机 MP3 播放器 通讯本等 基于 Android 手机应用开发程序设计 5 2 技术概述技术概述 从系统的体系结构上看 本学生系统是采用公共数据库 学生客 户端 安卓客户端 的一种客户端安卓软件 整个学生系统主要由数 据库服务器 Web 服务器和安卓客户端三个部分组成 相应地 本系统的实现技术主要包括浏览器端开发技术 Web 服 务器端技术 数据库服务器技术和安卓端开发技术等 2 12 1 安卓端开发技术安卓端开发技术 安卓端开发技术中 本系统使用最新的开发技术 HTML5 Mui 前端框架 Ajax 异步通讯 JS 动态控制等 2 1 1 HTML5 通过 HTML5 开发移动 App 时 会发现 HTML5 很多能力不具 备 为弥补 HTML5 能力的不足 在 W3C 组织 推出 HTML5 HTML5 扩展了 JavaScript 对象 plus 使得 js 可以调用各种浏 览器无法实现或实现不佳的系统能力 设备能力如摄像头 陀螺仪 文件系统等 业务能力如上传下载 二维码 地图 支付 语音输入 消息推送等 使用 HTML5 开发的移动 App 并非 mobile web 页面 这是新 手最容易混淆的地方 mobile web 的文件存放在 web 服务器上 而 移动 App 的文件存放在手机本地 编写移动 App 的 html js css 文件被打包到 ipa 或 apk 等原生安装包 在手机客户端运行 HTML5 应用架构 基于 Android 手机应用开发程序设计 6 图 1 2 HTML5 应用框架 2 1 2 Mui MUI Mobile User Interface 是一套基于 Html5 的 遵循 Html5 规范的 中国团队开发的 开源的 遵循 MIT 条款 用于手机端界 面开发的一套框架 性能和体验的差距 一直是 mobile app 开发者放弃 HTML5 的首 要原因 浏览器天生的切页白屏 不忍直视的转页动画 浮动元素的 抖动 无法流畅下拉刷新等问题 这些都让 HTML5 开发者倍感挫败 尤其拿到 Android 低端机运行 摔手机的心都有 另一方面 浏览器 默认控件样式又少又丑 制作一个漂亮的控件非常麻烦 也有一些制 作简单的 ui 框架但性能低下 mui 框架有效的解决了这些问题 这是 一个可以方便开发出高性能 App 的框架 也是目前最接近原生 App 效 果的框架 基于 Android 手机应用开发程序设计 7 2 1 3 Ajax AJAX 即 Asynchronous Javascript And XML 异步 JavaScript 和 XML 是指一种创建交互式网页应用的网页开发技术 通过在后台与服务器进行少量数据交换 AJAX 可以使网页实现 异步更新 这意味着可以在不重新加载整个网页的情况下 对网页的 某部分进行更新 传统的网页 不使用 AJAX 如果需要更新内容 必须重载整个 网页页面 Ajax 的核心是 JavaScript 对象 XmlHttpRequest 该对象在 Internet Explorer 5 中首次引入 它是一种支持异步请求的技术 简而 言之 XmlHttpRequest 使您可以使用 JavaScript 向服务器提出请求并 处理响应 而不阻塞用户 2 1 4 JS JavaScript 一种直译式脚本语言 是一种动态类型 弱类型 基于 原型的语言 内置支持类型 它的解释器被称为 JavaScript 引擎 为浏 览器的一部分 广泛用于客户端的脚本语言 最早是在 HTML 标准 通用标记语言下的一个应用 网页上使用 用来给 HTML 网页增加动 态功能 在 1995 年时 由 Netscape 公司的 Brendan Eich 在网景导航者浏 览器上首次设计实现而成 因为 Netscape 与 Sun 合作 Netscape 管理 层希望它外观看起来像 Java 因此取名为 JavaScript 但实际上它的语 法风格与 Self 及 Scheme 较为接近 为了取得技术优势 微软推出了 JScript CEnvi 推出 ScriptEase 与 JavaScript 同样可在浏览器上运行 为了统一规格 因为 JavaScript 兼容于 ECMA 标准 因此也称为 ECMAScript JavaScript 是一种属于网络的脚本语言 已经被广泛用于 Web 应用 开发 常用来为网页添加各式各样的动态功能 为用户提供更流畅美观的 浏览效果 通常 JavaScript 脚本是通过嵌入在 HTML 中来实现自身的 功能的 基于 Android 手机应用开发程序设计 8 是一种解释性脚本语言 代码不进行预编译 主要用来向 HTML 标准通用标记语言下的一个应用 页面添加 交互行为 可以直接嵌入 HTML 页面 但写成单独的 js 文件有利于结 构和行为的分离 跨平台特性 在绝大多数浏览器的支持下 可以在 多种平台下运行 如 Windows Linux Mac Android iOS 等 Javascript 脚本语言同其他语言一样 有它自身的基本数据类型 表达 式和算术运算符及程序的基本程序框架 Javascript 提供了四种基本的 数据类型和两种特殊数据类型用来处理数据和文字 而变量提供存放 信息的地方 表达式则可以完成较复杂的信息处理 其用途有 1 嵌入动态文本于 HTML 页面 2 对浏览器事件做出响应 3 读写 HTML 元素 4 在数据被提交到服务器之前验证数据 5 检测访客的浏览器信息 6 控制 cookies 包括创建和修改等 7 基于 Node js 技术进行服务器端编程 JavaScript 脚本语言具有以下特点 1 脚本语言 JavaScript 是一种解释型的脚本语言 C C 等语言 先编译后执行 而 JavaScript 是在程序的运行过程中逐行进行解释 2 基于对象 JavaScript 是一种基于对象的脚本语言 它不仅可以 创建对象 也能使用现有的对象 3 简单 JavaScript 语言中采用的是弱类型的变量类型 对使用的 数据类型未做出严格的要求 是基于 Java 基本语句和控制的脚本语言 其设计简单紧凑 4 动态性 JavaScript 是一种采用事件驱动的脚本语言 它不需要 经过 Web 服务器就可以对用户的输入做出响应 在访问一个网页时 鼠 标在网页中进行鼠标点击或上下移 窗口移动等操作 JavaScript 都可直 接对这些事件给出相应的响应 5 跨平台性 JavaScript 脚本语言不依赖于操作系统 仅需要浏览 基于 Android 手机应用开发程序设计 9 器的支持 因此一个 JavaScript 脚本在编写后可以带到任意机器上使用 前 提上机器上的浏览器支 持 JavaScript 脚本语言 目前 JavaScript 已被大 多数的浏览器所支持 不同于服务器端脚本语言 例如 PHP 与 ASP JavaScript 主要被 作为客户端脚本语言在用户的浏览器上运行 不需要服务器的支持 所以在早期程序员比较青睐于 JavaScript 以减少对服务器的负担 而与 此同时也带来另一个问题 安全性 而随着服务器的强壮 虽然程序员更喜欢运行于服务端的脚本以 保证安全 但 JavaScript 仍然以其跨平台 容易上手等优势大行其道 同时 有些特殊功能 如 AJAX 必须依赖 Javascript 在客户端进行支 持 随着引擎如 V8 和框架如 Node js 的发展 及其事件驱动及异步 IO 等特性 JavaScript 逐渐被用来编写服务器端程序 2 1 5 JSON JSON JavaScript Object Notation 是一种轻量级的数据交换格式 它基于 JavaScript Standard ECMA 262 3rd Edition December 1999 的一个子集 JSON 采用完全独立于语言的文本格式 但是也使用了 类似于 C 语言家族的习惯 包括 C C C Java JavaScript Perl Python 等 这些特性使 JSON 成为理想的数据交换语言 易于人阅 读和编写 同时也易于机器解析和生成 网络传输速度 JSON 结构有两种结构 json 简单说就是 javascript 中的对象和数组 所以这两种结构就是 对象和数组两种结构 通过这两种结构可以表示各种复杂的结构 1 对象 对象在 js 中表示为 括起来的内容 数据结构为 key value key value 的键值对的结构 在面向对象的语言中 key 为对象的属性 value 为对应的属性值 所以很容易理解 取值方 法为 对象 key 获取属性值 这个属性值的类型可以是 数字 字符串 数组 对象几种 基于 Android 手机应用开发程序设计 10 2 数组 数组在 js 中是中括号 括起来的内容 数据结构为 java javascript vb 取值方式和所有语言中一样 使用索引获 取 字段值的类型可以是 数字 字符串 数组 对象几种 经过对象 数组 2 种结构就可以组合成复杂的数据结构了 2 2 Web 服务器端开发技术服务器端开发技术 Web 服务器端开发技术中 最关键的是访问数据库的动态网页技 术 包括 CGI ASP PHP 和 JSP 等 2 2 1 Servlet 一个 Servlet 是在服务器上运行的一个小程序 这个词是在 Java applet 的环境中被创造的 Java applet 是一种当作单独文件跟网页一起 发送的小程序 它一般用于在客户端运行 得到为用户进行运算或者 根据用户互作用定位图形等服务 服务器上是需要一些程序 常常是根据用户的输入来访问数据库 的程序 这些一般是使用公共网关接口 Common Gateway Interface CGI 应用程序完成的 然而 在服务器上运行 Java 这种 程序可使用 Java 编程语言实现 在通信量大的服务器上 JavaServlet 的优点在于它们的执行速度更快于 CGI 程序 各个用户请求被激活 成单个程序中的一个线程 而无需创建单独的进程 服务器端进行处 理请求的系统开销将明显降低 实现过程 1 客户端发送请求至服务器端 2 服务器将请求信息发送至 Servlet 3 Servlet 生成响应页面并将其传给服务器 响应内容动态生成 通常取决于客户端的请求 4 服务器将响应返回给客户端 一个 Servlet 就是 Java 编程语言中的一个类 它被用来扩展服务 基于 Android 手机应用开发程序设计 11 器的性能 服务器上驻留着可以通过 请求 响应 编程模型来访问的 应用程序 虽然 Servlet 可以对任何类型的请求产生响应 但通常只 用来扩展 Web 服务器的应用程序 目前最新版本为 3 1 其生命周期为 1 客户端请求该 Servlet 2 加载 Servlet 类到内存 3 实例化 初始化该 Servlet 4 init 初始化参数 5 service doGet 或者 doPost 6 destroy 2 2 2 Hibernate Hibernate 是一个开放源代码的对象关系映射框架 它对 JDBC 进 行了非常轻量级的对象封装 使得 Java 程序员可以随心所欲的使用对 象编程思维来操纵数据库 Hibernate 可以应用在任何使用 JDBC 的场 合 既可以在 Java 的客户端程序使用 也可以在 Servlet JSP 的 Web 应用中使用 最具革命意义的是 Hibernate 可以在应用 EJB 的 J2EE 架构中取代 CMP 完成数据持久化的重任 Hibernate 的核心接口一共有 6 个 分别为 Session SessionFactory Transaction Query Criteria 和 Configuration 这 6 个核心接口在任何 开发中都会用到 通过这些接口 不仅可以对持久化对象进行存取 还能够进行事务控制 下面对这 6 个核心接口分别加以介绍 1 Session Session 接口负责执行被持久化对象的 CRUD 操作 CRUD 的任务是 完成与数据库的交流 包含了很多常见的 SQL 语句 但需要注意 的是 Session 对象是非线程安全的 同时 Hibernate 的 session 不同于 JSP 应用中的 HttpSession 这里当使用 session 这个术语时 其实指的 基于 Android 手机应用开发程序设计 12 是 Hibernate 中的 session 而以后会将 HttpSession 对象称为用户 session 2 SessionFactory SessionFactory 接口负责初始化 Hibernate 它充当数据存储源的代 理 并负责创建 Session 对象 这里用到了工厂模式 需要注意的是 SessionFactory 并不是轻量级的 因为一般情况下 一个项目通常只需 要一个 SessionFactory 就够 当需要操作多个数据库时 可以为每个数 据库指定一个 SessionFactory 3 Transaction Transaction 接口是一个可选的 API 可以选择不使用这个接口 取而代之的是 Hibernate 的设计者自己写的底层事务处理代码 Transaction 接口是对实际事务实现的一个抽象 这些实现包括 JDBC 的事务 JTA 中的 UserTransaction 甚至可以是 CORBA 事务 之所 以这样设计是能让开发者能够使用一个统一事务的操作界面 使得自 己的项目可以在不同的环境和容器之间方便地移植 4 Query Query 接口让你方便地对数据库及持久对象进行查询 它可以有两 种表达方式 HQL 语言或本地数据库的 SQL 语句 Query 经常被用来 绑定查询参数 限制查询记录数量 并最终执行查询操作 5 Criteria Criteria 接口与 Query 接口非常类似 允许创建并执行面向对象的 标准化查询 值得注意的是 Criteria 接口也是轻量级的 它不能在 Session 之外使用 6 Configuration Configuration 接口的作用是对 Hibernate 进行配置 以及对它进行 启动 在 Hibernate 的启动过程中 Configuration 类的实例首先定位 映射文档的位置 读取这些配置 然后创建一个 SessionFactory 对象 基于 Android 手机应用开发程序设计 13 虽然 Configuration 接口在整个 Hibernate 项目中只扮演着一个很小的 角色 但它是启动 hibernate 时所遇到的每一个对象 Hibernate 中提供了两级 Cache 高速缓冲存储器 第一级别的 缓存是 Session 级别的缓存 它是属于事务范围的缓存 这一级别的缓 存由 hibernate 管理的 一般情况下无需进行干预 第二级别的缓存是 SessionFactory 级别的缓存 它是属于进程范围或群集范围的缓存 这 一级别的缓存可以进行配置和更改 并且可以动态加载和卸载 Hibernate 还为查询结果提供了一个查询缓存 它依赖于第二级缓存 2 2 3 Fastjson Fastjson 是一个 Java 语言编写的高性能功能完善的 JSON 库 具有 高性能 支持标准 功能强大 无依赖 支持范围广 开源等特点 fastjson 采用独创的算法 将 parse 的速度提升到极致 超过所有 json 库 包括曾经号称最快的 jackson 并且还超越了 google 的二进制 协议 protocol buf Fastjson 完全支持 http json org 的标准 也是官方网站收录的参考 实现之一 支持各种 JDK 类型 包括基本类型 JavaBean Collection Map Enum 泛型等 支持循环引用 不需要例外额外的 jar 能够直接跑在 JDK 上 支持 JDK 5 JDK 6 Android 阿里云手机等环境 Apache License 2 0 代码托管在 github org 上 项目地址是 2 3 数据库技术数据库技术 基于 Android 手机应用开发程序设计 14 2 3 1 MySQL 数据库数据库 MySQL 是一个关系型数据库管理系统 由瑞典 MySQL AB 公司 开发 目前属于 Oracle 公司 MySQL 是最流行的关系型数据库管理 系统 在 WEB 应用方面 MySQL 是最好的 RDBMS Relational Database Management System 关系数据库管理系统 应用软件之一 MySQL 是一种关联数据库管理系统 关联数据库将数据保存在不同 的表中 而不是将所有数据放在一个大仓库内 这样就增加了速度并 提高了灵活性 MySQL 所使用的 SQL 语言是用于访问数据库的最常 用标准化语言 MySQL 软件采用了双授权政策 它分为社区版和商 业版 由于其体积小 速度快 总体拥有成本低 尤其是开放源码这 一特点 一般中小型网站的开发都选择 MySQL 作为网站数据库 由 于其社区版的性能卓越 搭配 PHP 和 Apache 可组成良好的开发环 境 与其他的大型数据库例如 Oracle DB2 SQL Server 等相比 MySQL 自有它的不足之处 但是这丝毫也没有减少它受欢迎的程度 对于一般的个人使用者和中小型企业来说 MySQL 提供的功能已经绰 绰有余 而且由于 MySQ L 是开放源码软件 因此可以大大降低总体 拥有成本 Linux 作为操作系统 Apache 和 Nginx 作为 Web 服务器 MySQL 作为数据库 PHP Perl Python 作为服务器端脚本解释器 由 于这四个软件都是免费或开放源码软件 FLOSS 因此使用这种方式 不用花一分钱 除开人工成本 就可以建立起一个稳定 免费的网站 系统 被业界称为 LAMP 或 LNMP 组合 2 3 2 SQL 结构化查询语言 Structured Query Language 简称 SQL 是一种特殊目的的编 程语言 是一种数据库查询和程序设计语言 用于存取数据以及查询 更新和管 理关系数据库系统 同时也是数据库脚本文件的扩展名 结构化查询语言是高级的非过程化编程语言 允许用户在高层数据结构上工 作 它不要求用户指定对数据的存放方法 也不需要用户了解具体的数据存放方 式 所以具有完全不同底层结构的不同数据库系统 可以使用相同的结构化查询 基于 Android 手机应用开发程序设计 15 语言作为数据输入与管理的接口 结构化查询语言语句可以嵌套 这使它具有极 大的灵活性和强大的功能 基于 Android 手机应用开发程序设计 16 3 3 学生系统分析与设计学生系统分析与设计 3 1 需求分析需求分析 3 1 1 目标目标 满足学生所需信息的查询 如成绩 书籍 选课等 3 1 2 需求陈述需求陈述 基于本校学生的所需 本系统提供一下功能 1 成绩查询 2 图书查询 3 邮件查询 4 公告查看 3 1 3 ER 图图 E R 图也称实体 联系图 Entity Relationship Diagram 提供了表示实体类型 属性和联系的方法 用来描述现实世界的概念模型 本系统设计方方面面 为用户提供各种相关业务 现在对业务进行分析 得 出如下 E R 图 图 3 1 整体 ER 图 本系统核心实体为人 而人具有姓名 性别 身份证号码 籍贯 手机号码 基于 Android 手机应用开发程序设计 1 等属性 以姓名和身份证号来区分 图 3 2 ER 图 实体人 本系统核心服务对象 学生继承人的所有属性 并且多出学号的基本属性 同时可以以学号来区分学生 图 3 3 ER 学生与人的关系 本系统涉及人员还有教师 教师除了人的所有属性以外 还具有教师编号 工资等其他属性 应系统需求 工资等其他属性 不纳入本系统考虑范畴 基于 Android 手机应用开发程序设计 2 图 3 4 ER 教师与人的关系 工作人员 同教师一样 继承于人 多出工号 工作范围 工资等属性 本 系统所需附加属性为工号 图 3 5 ER 工作人员与人的关系 在学校 学生应参加课程 故而增加课程 应即使同一课程 教师 教室等 并不统一 暂不列出 图 3 7 ER 学生与课程的关系 课程由我们的教室进行教学 图 3 8 ER 教师与课程的关系 学生参加课程 教室上课 同时会产生考试的行为 诞生成绩 基于 Android 手机应用开发程序设计 3 图 3 9 ER 学生 教师与课程和成绩之间的关系 在本系统中 提供图书相关功能 故而有一实体 图书 一本图书 拥有图 书编号 图书馆内部编号 图书名称 出版社 作者 价格 类别 以及该图书 在本图书馆的位置 图 3 10 ER 实体图书 我们的学生可以来借书 图 3 11 ER 学生与图书的关系 基于 Android 手机应用开发程序设计 4 对学生借书 还书 续借等行为进行记录 便有了我们的借阅表 图 3 12 ER 学生 图书和借阅记录的关系 我们的学生聚合 既有班级 专业 系 学院 图 3 12 ER 学生和班级的关系 我们的工作人员 聚合成为我们的部门 图 3 13 ER 工作人员与部门的关系 工作人员发布公告 基于 Android 手机应用开发程序设计 5 图 3 14 ER 工作人员与公告的关系 工作人员 管理我们的邮件 图 3 15 ER 邮件与工作人员的关系 邮件由我们的学生进行查收 图 3 16 ER 邮件与学生的关系 围绕邮件 工作人员管理邮件 学生查收 产生记录 图 3 17 ER 学生与工作人员和邮件的关系 基于 Android 手机应用开发程序设计 6 3 1 4 数据字典数据字典 更多详见附录 3 2 数据库设计数据库设计 数据库设计 Database Design 是指对于一个给定的应用环境 构造最优的数 据库模式 建立数据库及其应用系统 使之能够有效地存储数据 满足各种用户 的应用需求 信息要求和处理要求 在数据库领域内 常常把使用数据库的各 类系统统称为数据库应用系统 在本系统中 数据库参照 ER 图 需求分析 数据字典 并按照数据库设计 三大范式进行设计 第一范式 实体中的某个属性不能有多个值或者不能有重复的属性 第二范式 数据表里的所有数据都要和该数据表的主键有完全依赖关系 第三范式 每个非关键字列都独立于其他非关键字列 并依赖于关键字 第 三范式指数据库中不能存在传递函数依赖关系 3 2 1 数据库需求分析数据库需求分析 以设计满足系统并能实现功能的数据库为目标 考虑到该系统对 数据库要求不是很高 本系统采用 MySQL 数据 以 E R 为核心 根 据数据字典进行提取并设计 3 2 2 数据库设计图数据库设计图 本系统数据库设计图 共有 21 张表 以学生表为核心 以满足功能和满足 三大范式 具体图例如下 基于 Android 手机应用开发程序设计 7 Physical Data Model Model 数据库设计 Package Diagram 数据库设计 Author 彭应智Date 2015 3 12 Version 1 0 登录表 ID 登录名 密码 用户ID int varchar 100 varchar 100 int 学生表 ID 姓名 学号 班级ID 学生证号 饭卡编号 饭卡余额 宿舍号 身份证号 图书馆余额 int varchar 100 int int varchar 50 varchar 50 varchar 50 int varchar 50 int 班级表 ID 班级名称 专业ID 班主任 int varchar 100 int int 系表 ID 名称 系主任 int varchar 100 int 专业表 ID 专业名称 系ID int varchar 100 int 教师表 ID 姓名 教师号 手机号码 int varchar 100 int varchar 50 课程表 ID 课程名称 老师 学分 学年 学期 int varchar 100 int int varchar 50 int 成绩表 ID 成绩 学生ID 课程ID ID2 绩点 补考成绩 重修成绩 int int int int int int int int 地区表 ID 名称 FID int varchar 100 int 公告表 ID 标题 内容 发布时间 发布部门 int varchar 100 longtext datetime varchar 50 邮件表 ID 姓名 到达时间 取包时间 发件人 发件地区 发件地址 发件人联系方式 邮递方式 int int date date varchar 50 int varchar 500 varchar 50 varchar 50 图书信息表 ID 书名 作者 图书类型ID 出版社 int varchar 100 varchar 100 int varchar 100 图书表 ID 图书信息ID 图书放置位置 图书编号 int int int int 图书类型表 ID 名称 FID int varchar 100 int 当前借阅表 ID 图书ID 学生ID 借阅时间 续借次数 应还时间 int int int date int date 历史借阅表 ID 图书ID 学生ID 借阅时间 续借次数 还书时间 罚款费用 int int int date int date int 位置表 ID 名称 FID int varchar 100 int 学生扩展信息表 ID 曾用名 入学日期 毕业中学 家庭地区 家庭地址 电子邮件 邮政编号 民族 籍贯 政治面貌 int varchar 50 date varchar 200 int varchar 50 varchar 200 int int varchar 50 varchar 50 图书扩展信息表 ID ISBN 价格 出版年份 页数 int varchar 50 int int int 宿舍表 ID 名称 FID 类型 int varchar 100 int int 宿舍类型表 ID 类型 床位 洗漱台数量 坑位 int varchar 100 int int int 图 3 6 ER 学生与课程的关系 3 2 3 数据库逻辑结构设计数据库逻辑结构设计 数据库的概念结构设计完毕后 就可以将上面的概念结构转化为 某种数据库系统所支持的实际数据模型 也就是数据库的逻辑结构 对于本系统 需要建立含有 21 个表的数据库 分别如下 基于 Android 手机应用开发程序设计 8 表 3 1 表的清单 名称代码名称代码 登录表T Login公告表T Notice 学生表T User教师表T Teacher 学生扩展信息表 T UserExpansionInfo课程表T Course 宿舍表T Dorm成绩表T Score 宿舍类型表T DormType班级表T Class 图书表T Book专业表T Professional 图书信息表T BookInfo系表T Department 图书扩展信息表 T BookExpansionInfo邮件表T EMS 图书类型表T BookType当前借阅表T NowBorrow 图书位置表T BookPosition历史借阅表 T HistoryBorrow 地区表T Area 各表间 建立外键以表联系 同时以避免意外问题的出现 表 3 2 引用的清单 名称父表格子表格 R User Login 学生表登录表 R Class User 班级表学生表 R Professional Class 专业表班级表 R Department Professional 系表专业表 R Teacher Class 教师表班级表 R User Score 学生表成绩表 R Course Score 课程表成绩表 R Teacher Course 教师表课程表 R Area User 地区表学生表 R User EMS 学生表邮件表 R BookInfo Book 图书信息表图书表 R BookType BookInfo 图书类型表图书信息表 R Book NowBorrow 图书表当前借阅表 基于 Android 手机应用开发程序设计 9 R Book HistoryBorrow 图书表历史借阅表 R User NowBorrow 学生表当前借阅表 R User HistoryBorrow 学生表历史借阅表 R BookPosition Book 位置表图书表 R Ares UserEInfo 地区表学生扩展信息表 R User UserEInfo 学生表学生扩展信息表 R BookEInfo BookInfo 图书扩展信息表图书信息表 R Area EMS 地区表邮件表 R DormType Dorm 宿舍类型表宿舍表 R Dorm User 宿舍表学生表 更多详见附录 基
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药品耗材存放管理制度
- 药品销售员工管理制度
- 药店分级分类管理制度
- 药店消防制度管理制度
- 菏泽基层宿舍管理制度
- 设备变更备案管理制度
- 设备定期维修管理制度
- 设备更新报废管理制度
- 设备管理二级管理制度
- 设备装配公司管理制度
- 声学装修施工方案
- 基于MATLABsimulink同步发电机突然三相短路仿真
- 《标准的制定》课件
- 国土空间规划环评培训
- 北京理工大学《工程电磁场》2021-2022学年第一学期期末试卷
- 火灾事故应急演练桌面推演
- 四川省成都市九县区2023-2024学年高一下学期期末调研考试化学试题(解析版)
- 《二倍角的正弦、余弦、正切公式》名师课件2
- 2024年中国浓缩料预混料行业市场现状、前景分析研究报告(智研咨询发布)
- 内蒙古兴安盟(2024年-2025年小学四年级语文)人教版期末考试(下学期)试卷及答案
- 2021-2022学年物理高一第二学期期末教学质量检测模拟试题含解析
评论
0/150
提交评论