




已阅读5页,还剩51页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业设计论文本科毕业设计论文 题题 目目 基于基于安卓安卓手机的无线数字化磁力仪手机的无线数字化磁力仪 专业名称 电子信息工程 学生姓名 张松涛 指导教师 毕业时间 2015 6 毕业 任务书 一 题目 基于手机的无线数字化磁力仪 二 研究主要内容 接收来自 WiFi 模块的的磁力仪数据 在移动设备上进行数据处理与显示 并进行相关数据分析 三 主要技术指标 1 接收通过 WiFi 模块传送来的数据 满足传输速率 2Mbps 2 根据传送来的数据分析出磁场情况 并且能够实时显示磁场数据 3 可以对历史采集数据进行存储 并能随时调用 四 进度和要求 1 2 周 初步了解 Android 软件的编写步骤和方法 安装虚拟机运行 Android SDK 安装调试好编程软件 Eclipse 3 4 周 翻译 3000 字左右相关英文文献 学习 Java 语言 及其开发环境 5 6 周 熟悉 WiFi 的工作原理并进行相关的简单编程 7 8 周 编写软件框架及代码 实验软件框架的流畅完美运行 9 10 周 进一步编写软件及调试 11 12 周 与硬件联机调试解决程序 Bug 13 14 周 完成软件整体测试 15 16 周 提交论文 制作答辩电子稿 准备答辩 五 主要参考书及参考资料 1 刘仙艳 移动终端开放平台 Android J 信息通信技术 2011 05 4 50 53 DOI 10 3969 j issn 1674 1285 2011 04 009 2 于士鹏 Android 平台下双屏幕切换显示的设计及实现 D 东南大学 2010 设计 论文 学生学号 学生姓名 指导教师 系主任 本科毕业设计论文本科毕业设计论文 题题 目目 基于手机的无线数字化磁力仪基于手机的无线数字化磁力仪 专业名称 03041102 学生姓名 张松涛 指导教师 李 斌 毕业时间 2015 6 20 本科毕业设计论文本科毕业设计论文 ii 摘 要 Android 是一款针对移动设备的操作系统和软件平台 随着智能手机的兴 起 渐渐成为占有市场比重最大的移动平台操作系统 Android 采用 Linux 内 核 由 Goodle 和开放手机联盟于 2007 年 11 月 5 日发布 可以使用 Java 语言 开发和管理代码 目前 Android 系统的软件越来越多 从聊天 教育 影视 购物 生活 新闻 办公软件到各种单机 网络游戏等软件 而上位机软件大 多为 PC 端软件 由于 PC 携带不方便 不利于随时随地的对数据进行处理和分 析 而 Android 软件恰好可以解决 PC 端存在的问题 让使用更加方便 快捷 本文是针对硬件磁力仪做的 Android 手机端上位机软件 安装在具有安卓系统 的手机或平板上 安卓版本为 4 0 3 以上 硬件磁力仪是对指定区域进行磁场 测量 并将测试的数据上传到上位机 Android 端软件对接收到的磁场信息进 行处理并实时以波形的形式进行显示 方便对测量地区磁场值变化进行观测以 及对各种磁场信息进行统计与分析 本文的主要研究内容包括 Android 软件开发平台搭建 软件需求分析 软件界面设计 Java 类设计 软件各个模块测试 调试与结果分析 关键词 Android Java 磁力仪 本科毕业设计论文本科毕业设计论文 iii ABSTRACT Android is an operating system and software platform for the mobile device Android gradually become the largest mobile platform operating system in the possession of the market share with the rise of the smart mobile phone Android uses the Linux kernel Android released by the Google and the open mobile phone consortium in November 5 2007 and use Java language to develop and manage code At present the Android system has more and more software that is from chat education film shopping life news office software to a variety of singe player games network games and so on The software of upper computer is mostly software of PC PC is inconvenient to carry and can t anytime to analysis and use the data But the Android software can solve problems of PC The Android software become more convenient and fast This thesis makes a client software that can install on Android mobile phone or tablet The version of Android is more than 4 0 3 A client hardware measures magnetic field and transfers data to the upper computer Android client software receives the information of magnetic field and displays the information with waveform Android client software is convenient to measure the area of magnetic field and can statistic or analysis the information of magnetic field The main research of this thesis include Android Software platform software requirements interface of software Java class testing debugging and results of the software KEY WORDS android java client 本科毕业设计论文本科毕业设计论文 iv 目 录 第一章第一章绪论绪论 1 1 1 本文的研究背景和意义 1 1 2 研究现状 2 1 3 本文所做的工作 2 1 4 本文的组织结构 2 第二章第二章 相关技术介绍相关技术介绍 4 2 1 Android 平台 4 2 1 1 安卓平台特性 4 2 1 2 安卓平台架构 4 2 1 3 安卓 Android 市场 5 2 1 4 安卓应用程序模块 6 2 1 5 安卓平台优点 7 2 2 Android 软件开发语言 7 2 2 1 Java 语言 7 2 2 2 语言特性 7 2 3 Android 开发环境 8 2 4 Android Socket 通信原理介绍 9 2 4 1 Socket 定义与分类 9 2 4 2 Socket 的基本通信模型 10 2 4 3 Socket 基本实现原理和方式 10 2 5 Java 多线程 11 2 5 1 多线程的定义 11 本科毕业设计论文本科毕业设计论文 v 2 5 2 Java 多线程的实现 12 2 5 3 线程的四种状态 12 2 3 4 线程的优先级 同步及阻塞 12 2 6 小结 13 第三章第三章 需求分析需求分析 15 3 1 功能分析 15 3 1 1 传输数据功能分析 15 3 1 2 数据处理功能分析 15 3 1 3 存储数据功能分析 15 3 1 4 波形绘制功能分析 16 3 1 5 历史数据删除功能分析 17 3 2 非功能需求分析 17 3 3 小结 17 第四章第四章 详细设计和实现详细设计和实现 18 4 1 Android 开发平台的搭建 18 4 1 1 JDK 的安装 18 4 1 2 SDK 的安装 19 4 1 3 Eclipse 下载与安装 20 4 1 4 ADT 插件安装及配置 21 4 2 系统研究思路 23 4 2 1 整机系统 23 4 2 2 软件流程图 24 4 3 软件界面图 25 4 3 1 软件界面设计 25 本科毕业设计论文本科毕业设计论文 vi 4 3 2 软件按钮事件界面设计 27 4 3 3 软件运行消息提示设计 28 4 4 软件采用类 28 4 5 系统实现的软硬件平台 34 4 6 小结 34 第五章 系统测试 35 5 1 测试目标 35 5 2 测试方案 35 5 3 测试环境 35 5 4 测试内容 35 5 4 1 功能测试 35 5 4 2 恢复测试 36 5 4 3 可用性测试 36 5 4 4 环境兼容性测试 36 5 5 测试结果 37 5 6 小结 38 第六章 结论与展望 39 6 1 总结 39 6 2 展望 39 参考文献 40 致 谢 41 毕业设计小结 42 本科毕业设计论文本科毕业设计论文 vii 本科毕业设计论文本科毕业设计论文 1 第一章 绪论 1 1 本文的研究背景和意义 随着科学技术的不断进步 尤其是嵌入式硬件技术的飞速发展 促使电子 产品给人们带来了很多便利 这些便利已遍布在人们生活中的方方面面 尤其 是智能手机的飞速发展更是让人类的生活有了前所未有的巨大变化 智能手机 以其高科技含量和越来越低的价位逐渐成为了当代青年的必不可少的科技产品 智能手机不仅为人们提供了大量的娱乐工具 而且在工作和学习中也伴演着重 要的角色 人们的生活中已经无法缺少智能手机的使用 Google 在 2013 年 7 月发布了关于智能手机使用情况的调查报告 报告中表明 智能手机在中国 的普及率得正在迅速迅提升 从 2012 年的 47 上升到现在的 76 7 几乎一 半的中国居民已经使用智能手机 智能手机在存储能力 用户交互能力和 CPU 处理能力等功能上正在不断的提高 手机 CPU 已经从开始的单核发展为如今的 八核 位数从 32 位到如今的 64 位 存储空间也从有开始的 512M 发展为 128G 运行内存从开始的 256M 发展到如今的 4G 智能手机越来越强大的硬件 配置 为手机的强大的使用功能打下了坚定的基础 现今 主流智能手机操作系统现分为三大类 分别是 Android 操作系统 IOS 操作系统和 Windows Phone 操作系统 这三种主流操作系统中只有 Android 是为开源的操作系统 2013 年年初 IDC 国际数据中心 公布了智能 手机销量的统计数据 该数据显示 2012 年第四季度 Android 智能手机的销 售量为 1 598 亿台 市场占有率为 70 1 排名第一 比去年同比增幅 88 并保持良好的上涨态势 到 2014 年第三季度 Android 以 83 6 的市场占有率稳 居移动操作系统市场之首 出货量为 2 68 亿 去年同期为 2 06 亿 市场份额由 81 4 上升至 83 6 Android 操作系统的开源发布使 Android 手机得到了空前 迅速的发展 其广泛的应用性和高度的开放性使 Android 软件越来越多 2014 年谷歌 Play Store 的应用数量便达到了 143 万 这些应用不仅在界面色彩搭配 上给人一种耳目一新的感觉 而且因为这些应用促使手机的功能越来越强大 Android 手机的大范围普及普及必定会促使人们进一步考虑到如何利用 Android 手机的便携性实现在 PC 机上的娱乐和工作 将 PC 软件或游戏制作成 Android 应用具有广阔的的前景 因此 研究 Android 手机软件 开发 Android 手机软件 将安卓手机作为上位机来代替之前的 PC 机 将会给带来较 大的实用价值 进一步给人们的工作和生活带来便利 本科毕业设计论文本科毕业设计论文 2 1 2 研究现状 纵观 Android 智能手机的发展历程 令人叹为观止的 Android 应用软件层 出不穷 目前 Android 手机应用软件中比较成熟的软件 相对集中于游戏 影 音娱乐 移动办公 图书阅读 摄影摄像 手机管理 新闻 智能家居等方面 手机应用软件大体上分为两类 即单机应用软件和交互应用软件 单机应 用软件是指仅需要手机终端的支持就可使用的应用软件 如单机游戏 办公软 件 摄影摄像 手机管理等 交互应用软件是指需要手机终端和其它终端或服 务端共同支持的应用软件 如 地图应用软件 聊天工具 影视应用软件 网 络游戏等 一般需要网络和相关服务器支持 智能家居 Google 在 2011 年 5 月就提出过 android Home 这个全新的概念 这个概念中将安卓手机作为控制 中心 PC 做为网关接收中心 安卓手机在任何时间 地点的发出的控制命令 经互联网传输到 PC 后 由 PC 处理这些控制命令来控制家电 除此之外 安卓手机可以代替传统 PC 作为上位机 与特定硬件进行信息 传输 1 3 本文所做的工作 本文首先分析了智能手机的发展现状 并选择了普及率最高和开源的 Android 智能手机为开发平台 研究了其系统构架和 Socket 通信 结合磁力仪 Windows 平台上位机软件 设计制作了 Android 端上位机应用软件 便于随时 随地的使用分析数据 最后本文对此类应用软件的发展进行了展望 本论文的 主要工作如下 1 1 了解 Android 应用开发平台 并搭建 Android 应用开发平台 2 2 了解 掌握 Android 应用开发语言 即 Java 语言 3 3 编写磁力仪安卓手机端应用软件 4 4 对应用软件进行测试 调试 1 4 本文的组织结构 本文一共由六章组成 各章的结构安排如下 第一章 绪论 包括本文的研究背景 研究现状 工作内容和文章结构 第二章 相关技术介绍 包括 Android 平台介绍 安卓开发语言介绍 网络通信协议介绍 第三章 需求分析 包括功能分析和非功能分析 第四章 详细设计和实现 包括 Android 平台搭建 软件流程介绍 软 本科毕业设计论文本科毕业设计论文 3 件界面介绍和相关类介绍 第五章 软件测试 包括测试方法 测试内容和测试结果 第六章 结论与展望 本科毕业设计论文本科毕业设计论文 4 第二章 相关技术介绍 2 1 Android 平台 Android 是专门为移动设备开发的平台 其中包括操作系统 中间件和核 心应用等 Android 最早是由 Andy Rubin 创办 于 2005 年被 Google 收购 2007 年 11 月 5 日 Google 正式发布 Android 平台 1 2 1 1 安卓平台特性 Android 平台具有以下特性 允许重用和替换组件的应用程序框架 专门 为移动设备优化的 Dalvik 虚拟机 基于开源引擎 WebKit 的内置浏览器 自 定义的 2D 图形库提供了最佳的图形效果 此外还支持基于 OpenGL ES 1 0 规范的 3D 效果 需要硬件支持 支持数据结构化存储的 SQLite 支持常 见的音频 视频和图片格式 例如 MPEG4 H 264 MP3 AAC AMR JPG PNG GIF SM 电话 需要硬 件支持 蓝牙 EDGE 3G 和 WiFi 需要硬件支持 摄像头 GPS 指 南针和加速计 需要硬件支持 包括设备模拟器 调试工具 优化工具和 Eclipse 开发插件等丰富的开发环境 2 1 2 安卓平台架构 Android 平台主要包括 Applications Application Framework Libraries Android Runtime 和 Linux Kernel 几部分 如图 2 1 所示 Applications 应用程序 Android 提供了一组应用程序 包括 Email 客户端 SMS 程序 日历 地 图 浏览器 通讯录等 这部分程序均使用 Java 语言编写 Application Framework 应用程序框架 无论是 Android 提供的应用程序还是开发人员自己编写的应用程序 都需 要使用 Application Framework 通过使用 Application Framework 不仅 可以大幅度简化代码的编写 而且可以提高程序的复用性 Libraries 库 Android 提供了一组 C C 库 它们为平台的不同组件所使用 开发人员 通过 Application Framework 来使用这些库所提供的不同功能 本科毕业设计论文本科毕业设计论文 5 图2 1 Android 平台架构 Android Runtime Android运行时 Android 运行时包括核心库和 Dalvik 虚拟机两部分 核心库中提供了 Java 语言核心库中包含的大部分功能 虚拟机负责运行程序 Dalvik 虚拟机专 门针对移动设备进行编写 不仅效率更高 而且占有更少的内存 Linux Kernel Linux内核 Android 平台使用 Linux2 6 版内核提供的核心系统服务 包括安全性 内 存管理 进程管理等 2 1 3 安卓 Android 市场 安卓是 Google 公司开发的基于 Linux 内核的开源操作系统 它包含了移 动设备工作所需的总和 包括操作系统 用户界面和应用软件 目前仅仅使用 Linux 操作系统的智能手机非常少见 但是基于 Linux 的 Android 操作系统 正飞速的抢占市场份额 在移动产业飞速发展的今天 市场对智能手机的需求越来越大 如在现今 大学校园中几乎人手一部智能手机 同时智能手机几乎每年换一部 随着移动 互联网的用户规模的快速增长 安卓智能手机也在快速的发展中 其价格不断 的创造历史新低 促使人人都能拥有一部智能手机 目前 智能手机已经成为 人们休闲娱乐 生活办公 获取知识的一个重要移动终端设备 促使整个社会 本科毕业设计论文本科毕业设计论文 6 的智能手机产业链不断的完善 智能手机的功能在不断的强大 智能手机用户 也在不断的增加 安卓系统飞速的发展归结于其强大的使用功能和源代码的开放 这表明只 要有一定专业基础的人都可以在网上下载自己需要的安卓源代码并按自己的设 计进行一定的修改 生成自己的应用 这一特点可以促使大量的个人 团队结 合自己的开发能力和创意来修改制定自己独特的操作系统 做出富有人性化 创意化与个性化的安卓设备 如中国小米公司基于 Android 操作系统制作的 MIUI 系统已经超过1亿的使用量 从美国来看 2010 年 8 月3 日早间公布了安卓手机在美国市场销售量首 次超过苹果 iPhone 并且在美国智能手机销售市场中占27 的份额 对于其他 国家 安卓智能手机主宰了欧洲主要市场的销售额 销售份额超过60 的国家 包括 英国 西班牙 法国 意大利等国家 而对于中国市场 安卓手机已经 占据上风 在现今的中国智能手机市场中 国内众多品牌占据了巨大的市场销 售比例如 小米 魅族 华为 中兴 酷派 联想等 同时国内品牌手机正在不 断的超越国外著名企业的销售额 2 1 4 安卓应用程序模块 Android 应用软件由 Activity Intent Content Provider Service 这4大模 块构造而成 1 本系统主要用的模块为 Activity 其中Activity是最基本的模块 一般称为 活动 在应用软件中 一个Activity通常就是一个单独的显示界面 换句话所 Activity代表一个用户所能看到的屏幕显示内容 主要用于处理应用软件的整体 性工作 所有应用软件的 Activity 都继承于 android app Activity 类 该类是 Android 提供的基层类 其它 Activity 继承该父类后 通过父类的方法来实现 各种各样的功能 在 Android 中 Activity 拥有 Running Paused Stoped 和 Killed 四种 基本状态 Runing 为启动 个新Activity 启动后显示在屏幕最前端 处于栈 的最顶端 此时它处于可见并可人机交互操作的激活状态 Paused 为 Activity 被另一个透明 Dialog 样式的 Activity 覆盖时的状态 此时它依旧与窗口管理 器保持连接 系统继续维护其内部状态 它仍然可见 但却失去了焦点 不能 进行人机交互操作 Stoped 为 Activity 被新的 Activity 覆盖并失去焦点 此 时旧的Activity 不可见 新的 Activity 可见 并可操作 Killed Activity 被系统 杀死并回收或者处于未启动状态 当一个 Activity 实例被创建 销毁或启动另 一个Activity 时 Activity 在这四种状态之间进行相互转换 这种转换的发生依 赖于用户对软件的操作 本科毕业设计论文本科毕业设计论文 7 2 1 5 安卓平台优点 安卓平台拥有以下四种主要优点 1 1 开放性 安卓平台基于 BSD 协议 并鼓励开发人员共享自己的 开发源码 同时也可以对自己的源码进行加密 这大大促进了安卓平台在现今 市场中的发展 2 2 非垄断性 其他操作系统 如 微软公司的 Windows Phone 和 苹果公司的IOS 都是垄断性的 而安卓平台是非垄断性的 开发者可以制定 自己的操作系统 制定自己的云计算和制定自己的应用商店 3 3 硬件跨平台 由于安卓平台的开放性和强大的兼容性 同一款应 用软件可以是在不同厂商 不同型号的安卓手机或平板上正常运行 4 4 并行运行模式 安卓操作系统支持多任务操作 如 在打开音乐 软件进行听歌时 可以打开办公软件 同时进行办公 2 2 Android 软件开发语言 Android 软件开发有多种语言 Java 语言是编写 Android 软件最常用的编 程语言 本软件便是使用 Java 语言开发的 Java 语言是于 1995 年由 Sun 公司推出的一种极富创造力的面向对象的程序设计语言 它是由有 Java 之父 之称的 Sun 研究院院士詹姆斯 戈士林博士亲手设计完成的 并完成了 Java 技术的原始编译器和虚拟机 2 Java 语言由美国Sun Microsystems 的 Tames Goslin 等人发明的一种面向对象程序设计语言 支持封装性 多态性和继承性 2 2 1 Java 语言 Java 语言的出现是源于对独立平台语言的需求 这种语言要求所编写的程 序不会因为芯片的变化而发生程序无法运行或出现运行错误 目前 Java 语言 的优势越来越明显 并且已经成为网络时代一门非常重要的编程语言 同时也 是目前十分流行的高级程序设计语言 仅次于C语言 特别适合于网络应用程 序的开发 2007 年 11 月 5 日 已经成长为互联网领域内巨人的 Google 发 布了一款 Android 手机操作系统平台 Android 采用 JDK Java开发工具包 的替代品 同时采用 Dalivk 虚拟机 来替代 JVM 虚拟机 Java虚拟机 由此可以得出 Java 语言是 Android 编程的 核心 在 Android 应用中的流程处理 算法 网络等都是由 Java 语言编写的 本科毕业设计论文本科毕业设计论文 8 2 2 2 语言特性 Java 语言具有以下特性 简洁性 Java 语言是从 C 延生而来 其语言风格与 C 相似但是比 C 使用简单 Java 语言删掉了 C 中一些不是绝对必要的事物 比如头文 件 结构 指针 联合 隐式的类型转换和操作符重载等 安全性 Java 语言中 一切对内存的访问都是通过对象实例来实现的 是 为了防止用户在网络系统或分布系统的环境下使用木马等不安全手段访问对象 的私有项目或文件 并且 Java 语言不支持 C 语言的内存单元指针 在 C 语 言中是通过符号指针来引用内存单元指针 通过符号指针来引用内存 符号指 计在 Java 运行系统运行时被解释为实际内存地址 同时 Java 语言提供了专 门的内存管理机制来管理内存地址 同时 Java 语言在码的传输中使用了公开 密钥加密机制来保证数据安全 并且在运行环境中提供了四级安全保障机制 字 节码校验器 运行时内存布局 类装载器 文件访问限制 动态性 Java 语言的类是通过动态装载入运行过程中所需要的类 这种方 法可以解决 C 在增加子类而没有编译时所出现的程序崩溃现象 同时 Java 语言的滞后联编机制可以重复利用面向对象编程风格的优点 实现了即插即用 的功能 可移植性 使用 Java 语言编写的程序可以不经过任何修改就可以在不同 的硬件和软件平台上运行 因此 Java 编译器所生成的可执行代码是基于 Java 虚拟机实现的 高性能性 由于 Java 编译生成的字节码和机器码非常相近 因此 Java 语 言的执行效率非常接近于 C 和 C 的执行效率 多线程性 多线程指利用系统的空闲来执行一些常规过程 Java 语言提供 多线性语言支持 可以提高程序执行效率 就像安排不同人分别完成项目的不 同任务 使项目的完成速度提高了很多倍 相当于提高了执行效率 分布性 Java 语言是一种适用于网络通信的编程语言 Java 语言提供的 类库中支持 TCP IP 通信协议 可以通过 URL 地址访问网络上资源 解释性 Java 语言是通过解释来执行的 使用 Java 语言时 首先使用编 译器将代码编 译为字节码 然后通过 Java 解释器进行解释执行 相比于 C 语言被编 译为本地 指令后执行有非常独特的区别 2 3 Android 开发环境 本软件开发采用自由集成开发环境 Eclipse Eclipse 最早是由 IBM 公司 本科毕业设计论文本科毕业设计论文 9 研发的 其前身为 ffiM 的 Visual Age 后来 IBM 将 Eclipse 作为开放源代 码的项目发布 Eclipse 是著名的跨平台开源集成开发环境 主要用于Java语言开发 是世 界上最大的开源组织的产品 Eclipse 本身只是一个框架和一组服务 但是可以 支持很多插件 也可以认为 Eclipse 中除了内核 其它所有的东西都是插件 在实际使用时 不仅可以使用原有的经典插件 也可以使用自己开发的特色插 件 因此 Eclips 获得了许多软件开发商的钟爱 Eclipse的基础是客户机平台 即RCP RCP 主要包括以下组件 用于启动 Eclipse 以及运行插件的核心平台 标 准集束框架 OSGi 可移植构件工具包 SWT 用于文件缓冲 文本处理的文 本编辑器 JFace Eclipse 工作台 包括Workbench 包含视图 views 编辑器 editors 视角 perspectives 和向导 wizards Eclipse 的开 发环境组件包括 工作区 Workspace 工作台 Wordbench 透视图 Perspective 三个部分组成 工作区主要负责管理使用资源 统计便通知插件资源变化信息 工作台主要负 责管理项目和资源 它还可以根据文档的类型选择合适的文档编辑器 透视图 包括视图和编辑器 用户可以在多个透视图中进行切换编辑 其中常见的有 JavaAVA 透视图 Java Perspective 资源透视图 Resouece Perspective 调试透 视图 Debug Perspective 小组同步透视图 TeamSynchronizing Perspective Eclipse 还包含许多视图 通过它们可以从各个实业看整个项目 使得工程建立 的更完美 Eclipse 具有三大优点 1 1 Eclipse 是一个开放源代码的平台 任何个人或组织可以免费使 用和获得该软件的特权 2 2 Eclipse 具有可扩展性和可配置性 使用各种插件来构建开发环 境 即是一个框架和一组服务 3 3 Eclipse 可以实现对多重平台特性的支持 因此开发者可以使用 自己擅长的平台 例如 Windows MacOS Linux 等 2 4 Android Socket 通信原理介绍 Android 操作系统具有 HTTP 通信和 Socket 通信两种常用的通信方式 其中 HTTP 连接只有用户请求时才会建立连接通道 即使用 请求 响应 的方式 客户端向服务器发送请求后 服务器端才向客户端返回数据 使用 Socket 通信时 首先双方之间建立的连接 即客户端连接服务端 连接成功后 可直接进行数据的传输 建立连接后便没有服务端和客户端的区别 即双方都 可以主动发送信息 本论文中的所有通信都采用 Socket 实现 本科毕业设计论文本科毕业设计论文 10 2 4 1 Socket 定义与分类 Socket 为接收和发送应用软件之间的数据的抽象层 应用软件可以通过 Socket 将软件添加到网络中 并且可与同一局域网中的其他应用软件实现网络 通信 Socket 为通信的应用软件提供了数据传输通道 并且提供了软件内部与 外界通信的端口 Socket 通信的实现根据不同的的底层协议可分为多种方式 本论文中仅用到了 TCP IP 协议中的 Socket 内容 其中流套接字 streamsocket 和数据报套接字 datagramsocket 是该协议中最为重要的 Socket 类型 在流套接字中采用 TCP 作为点对点通信协议 保证了字节流的 可靠性 数据报套接字的数据打包发送服务采用 UDP 通信协议完成 其中 TCP 协议是一种固定连线为基础的协议 TCP 可以保证从一端数 据送至另一端时 数据能够确实送达 而且抵达的数据的排列顺序和送达的顺 序相同 因此 TCP 协议适合可靠性要求比较高的场合 UDP 协议是无连接通信协议 不保证可靠数据的传输 但能够向若干目标 发送数据 接受发自若干源的数据 UDP 是以独立发送数据包的方式进行 UDP 协议适合于对数据准确性要求不高的场合 本文中的上位机应用软件均采用流套接字 即将 TCP 作为端对端协议的 方式 2 4 2 Socket 的基本通信模型 图 2 2 为 Socket 通信的基本模型 左右两边的应用软件分别为装在服务 端和客户端的平台上 应用之间通过底层的 Socket 套接字通信 而本论文中 的服务端为上位机应用软件 即本论文需要做的 Android 软件 而客户端为硬 件磁力仪 使用嵌入式编程编写的客户端 也是通过底层的 Socket 套接字通 信 图2 2 Socket 通信基本模型 本科毕业设计论文本科毕业设计论文 11 2 4 3 Socket 基本实现原理和方式 基于 TCP 协议的 Socket 通信的基本原理和方式 服务器端首先生成一个 ServerSocket 对象 其参数为一个整型数 它表示一个未被占用的端口号 然 后调用 Serversocket 的 accept 方法来接收客户端发送的数据 当没有数 据发送时 accept 方法处于堵塞状态 只有接收到数据后 可通过 inputstream 流 数据输入流 读取到所接收的数据 在客户端创建一个 Socket 对象 有两个参数 分别代表服务器端的 IP 地址和服务端设置的端口 号 Socket 对象通过 inputstream 流来读取数据 获取服务器发送的数据 然后把需要发送到服务端的数据写入到 outputstream 流 数据输出流 中实 现 socket 数据传输 图2 3为基于 TCP 协议的 Socket 通信流程图 图2 33 基于 TCP 协议的 Socket 通信流程图 2 5 Java 多线程 世间万物都可以同时完成很所工作 例如 人体可以同时进行呼吸 血液 循环 思考问题等活动 这种思想在 Java 中成为并发 而将并发完成的每一 件事情称为线程 2 本节是对 Java 线程的详细介绍 2 5 1 多线程的定义 多线程是一种允许在程序中同时执行多个指令流的机制 各线程之间是互 本科毕业设计论文本科毕业设计论文 12 相独立的 它与进程相同 各自拥有各自独立的执行空间 由操作系统进行分 配 线程没有独立的存储空间 进程与线程共同分享一个存储空间 多线程的 执行是并发的 并发是指在逻辑上可认为是同时发生的 但是在物理上并不是 同时发生 由于 CPU 的运行速度非常快 用户根本无法察觉到线程在物理上 的非并发效果 因此 在一般情况下可以认为各个线程是同时执行的 在一般 情况下多线程之间的执行顺序是随机的 对于该次执行哪条线程从而带来的线 程调度与同步等问题 将会交给专门的关键字机制来处理 2 5 2 Java 多线程的实现 Java 多线程的实现方式有以下两种 扩展 java lang Thread 类 继承于 Thread 类 使用时必需覆盖 run 方法 即把将要执行的代码添加到 run 方法中 这种方法有一个缺点 当该类 已经继承另一个类后不能再继承该类 实现 java lang Runnable 接口 Runnable 接口只有一个 run 方法 当某 个类实现 Runnable 接口时需要重写该方法 即把线程要执行的代码写入该 方法中 通过调用线程 Thread 对象的 start 方法可以开启线程 对于 Java 来说 run 方法表示新线程所要调用的方法名称 因此 在 Runnable 上或 Thread 上调用 run 方法仅仅是和普通代码一样执行 并不能启动新的线程 2 5 3 线程的四种状态 线程具有生命周期 其中最主要的有四种状态 分别为创建状态 可执行 状态 死亡状态与阻塞状态 创建状态 线程已经创建完毕 但 start 方法未被调用 此时线程未启动 可执行状态 线程可以执行 但不一定处于运行状态 CPU 的占用时间随 时可以分配给该线程 死亡状态 正常情况下 run 方法执行完毕后就表示该线程的死亡 除此 之外也可以调用 stop 或 destroy 方法使正在运行的线程结束 但不建 议使用这两种方法 因为 stop 方法可能会产生异常 而 destroy 方法 是强制终止 它不会释放锁 会导致其它线程也无法得到执行时间 阻塞状态 此时线程无法执行 因为 CPU 不会为其分配执行时间 2 3 4 线程的优先级 同步和阻塞 1 1 线程优先级 线程的优先级用来指定该线程的优先执行顺序 即 当多个线程同时进入可执行状态时 这些线程会等待 CPU 分配执行时间 获 本科毕业设计论文本科毕业设计论文 13 取执行权的概率通过优先级来决定 其中 Thread 类的 setPriority 方法用于 设置线程的优先级 getPriority 方法用于获取线程的优先级 2 2 线程同步机制 在同一个进程中 会有多个线程同时使用同一个 存储空间 这种共享方式虽然节约了系统资源但同时带来了访问冲突的问题 在 Java 中为了有效的避免该冲突 采用 synchronized 关键字机制 包括两种 用法 synchronized 方法和 synchronized 块 synchronized 方法 在声明方法时通过添加 synchronized 关键字来指定此 方法为 synchronized 方法 在此方法中对于每个类的实例都会有一把相应的锁 synchronized 方法必须获得相应实例所对应的锁才能调用这个方法 在此之前 这个方法所属线程处于阻塞状态 方法一旦执行 该线程就占用这个锁 当此 方法执行结束后才会释放这个锁 这种方式解决了变量的访问冲突问题 它保 证了同一时间中 每个类实例仅有一个声明为 synchronized 的成员函数处于可 执行状态 synchronized 块 采用 synchronized 关键字来声明 synchronized 块 Synchronized 块必须获得 syncObject 对象的锁后才能进入执行状态 使用的机 制于前面所述相同 这个方法可以使用在任意代码块中 同时也可指定任意上 锁的对象 具有较高的灵活性 3 3 线程的阻塞 Java 引入的同步机制虽然成功的解决了共享存储区 域的访问冲突问题 但当任意时刻所需要的资源未准备就绪 或同一时刻有多 个资源处于准备状态 因此 Java 引入了阻塞机制来解决此问题 阻塞是指暂 停当前正在执行的线程 等待资源准备就绪 Java 提供了多种方法支持阻塞机制 这些方法包括 sleep 方法 sleep 方法使用毫秒为单位的时间段作为参数 在这个时间 段内 线程保持阻塞状态 CPU 无法分配执行时间给该线程 当指定的时 间过去后 线程重新进入可执行状态 一般情况下 sleep 用于等待某个 所需资源的就绪 当使用时发现执行条件不符合 该线程将进入阻塞状态 一段时间后再次执行 直到条件符合为止 suspend 和 resume 方法 这两个方法需要搭配使用 suspend 方法使 线程进入阻塞状态 直到对应的 resume 方法调用后 该线程才会再次进 入可执行状态 一般情况下 suspend 与 resume 用于等待另一个线程 产生的结果 如果发现结果未获取 线程将进入阻塞状态 直到获取另一 个线程所执行的结果后 才可调用 resume 方法使线程进入可执行状态 yield 方法 该方法使当前线程放弃已得到的 CPU 占用时间 线程此时 处于可执行状态 随时可再次得到 CPU 使用时间 使用 yield 方法得到 本科毕业设计论文本科毕业设计论文 14 的效果类似于延迟该线程的CPU占用时间 将 CPU 的使用权先交给另一 个线程 使另一个线程先执行 wait 和 notify 方法 一般情况下这两种方法协同使用 wait 方法可使 线程进入阻塞状态 该方法是个重载方法 不带参数 另一种方法是将一 段时间作为参数 其单位是毫秒 使用第一种形式时 若要使该线程重新 进入可执行状态 则需满足超出指定时间后或采用对应的 notify 方法进 行调用 第二种方式则必需等待对应的 notify 被调用 2 6 小结 本章对整个软件功能实现的理论基础做了主要阐述 其中包括 Android 系 统的发展与历史 Android 开发平台的基本架构 五大应用程序组件 并详细 介绍了 Socket 通信的基本原理与实现方法 最后描述了 Java 多线程的特性与 实现方式 本科毕业设计论文本科毕业设计论文 15 第三章 需求分析 3 1 功能分析 本论文的 Android 应用软件功能主要包括五部分 传输数据 数据处理 存储数据 波形绘制和 历史数据删除等功能 以下是对各个个部分功能的分 析 3 1 1 传输数据功能分析 硬件磁力仪和和磁力仪手机端软件通过无线 wifi 硬件连接后 在软件中 通过 Socket TCP 协议成功连接 其中手机端为服务器 磁力仪为客户端 手 机端向磁力仪发送 start 命令开始准备传输数据 然后 将进入循环传输数据 每个采样周期内 手机向磁力仪发送 transform 命令 磁力仪向手机端发送 1440个字节的数据 完成数据传输 通过采样周期循环发送 transform 命令和1440个字节数据 3 1 2 数据处理功能分析 手机端软件对收到的1440个字节数进行变换处理 将紧挨着的每没4个字节 作为一个数据 一共为 1440 4 360 个数据 这360个数据分别为处理后的 X Y Z三个方向的磁场值 每个方向为120个数据 然后将X Y Z三个方 向的磁场值进行均方和求出M的120个值 3 1 3 存储数据功能分析 存储数据分为文本文件存储和二进制文件存储 其中文本文件存储是对处 理后的480360个数据进行存储 二进制存储是对接收到的1440个字节进行存储 如图 3 1 所示为文本文件存储方式 每行一共有四个数据 第一个数据为 保存数据的时间周期 第二个到第五四个数据分别为 X Y Z M 四个磁场值 每一个时间周期可以保存 120 组数据 如图 3 2 所示为二进制存储方式 每行数据为接收到的 1440 个字节转化为 字符串的结果 每一个时间周期可以保存一行数据 本科毕业设计论文本科毕业设计论文 16 图 3 1 文本文件 图 3 2 二进制文件 3 1 4 波形绘制功能分析 对处理后得到的480360个数据 进行波形显示 如下图 3 31 所示 为 预想绘图区域 其横坐标为0 120 代表120个点 纵坐标为 20000 20000mV代 表磁传感器的采集范围 此区域一共绘制四路波形 分别为X Y Z M 四 路波形用不同的颜色表示 其中X轴为黑色 Y轴为红色 Z轴为橙色 M轴为 蓝色 本科毕业设计论文本科毕业设计论文 17 图3 31 波形显示区域 3 1 5 历史数据删除功能分析 将保存的文本数据及其存储路径生成列表 选中当前项进行删除 便可删 除历史数据 如图3 42所示 列表区域为历史数据文件的保存时间和存储路径 长按列表选项 出现删除对话框 用于删除该历史数据 图3 42 删除历史数据 3 2 非功能需求分析 为了更好的进行人机交互操作 需要设计很多消息提示或对话框提示 在 比如 软件打开后进行 wifi 是否连接对话框连接提示 磁力仪与磁力仪手机 端软件连接状态消息提示 是否退出软件对话框提示 是否删除数据对话框提 示 数据是否删除成功消息提示等等 便于人机交互使用 3 3 小结 本章节对磁力仪手机端软件的功能需求和进行分析并且也对非功公能需求 进行了分析 详细的进行了软件需求设计 在软件实现的过程中 首先确定了 研究思路 为之后的软件的间具体设计和测试提供依据 本科毕业设计论文本科毕业设计论文 18 第四章 详细设计和实现 4 1 Android 开发平台的搭建 搭建 Android 开发平台首先需要准备 JDK ADT 插件 Eclipse 的安装 这些软件都可在网上下载 4 1 1 JDK 的安装 打开浏览器 进入 Oracle 官方主页 地址 JDK 安装包的选择和下载 下载完适 合自己系统的 JDK 版本后 就可以进行安装了 下面是以 Windows 系统为例的安装步骤 双击刚刚下载的 JDK 程序 弹出如图 4 1 所示的 JDK 安装向导框 单 击 下一步 按钮 在打开的如图 4 2 所示的对话框中 单击 更改 选择安装位置 图4 1 JDK 安装向导对话框 图4 2 JDK安装功能及位置选择对话框 本科毕业设计论文本科毕业设计论文 19 单击 下一步 按钮 开始安装 如图 4 3 所示 弹出如图 4 4 所示的 JRE 安装路径选择对话框 单击 更改 按钮 修改 安装路径 图4 3 JDK 安装进度窗口 图4 4 JRE 安装路径选
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新质生产力加速度
- 2025年流行病学研究专业综合评估答案及解析
- 2025年肿瘤学细胞遗传学知识考核试卷答案及解析
- 2025年中医学中医经典名方辨析试卷答案及解析
- 2025年外科手术创伤处理技术实操评估答案及解析
- 2025年妇产科常见疾病诊断鉴别考试答案及解析
- 医护关系舞台剧本
- 发展能源新质生产力翻译
- 2025年心理咨询心理评估技术应用模拟考试卷答案及解析
- 2025年风湿科免疫治疗药物剂量计算试卷答案及解析
- 常见肿瘤AJCC分期手册第八版(中文版)
- 绿色施工专项方案(技术方案)
- 挂篮检查验收记录表
- 专业技术职务资格申报材料真实性承诺书
- 脓毒症指南课件
- 生产副总经理岗位职责标准版本(五篇)
- 对颈椎概念和命名的再认识
- 华为信息安全宣传
- 物业管理供方管理程序
- GB/T 3730.2-1996道路车辆质量词汇和代码
- GB 25585-2010食品安全国家标准食品添加剂氯化钾
评论
0/150
提交评论