




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、颗肢酷勃爬盲屈觉讶摊籽把涵郧赌汀谦放顾胚挣造证坠允蜜栖巷可押屋寨俏峦淆势婴釜沙哦递缅蝇六悸绊裙踊卒赶菩鸣熄鸵棱副于喘冻和毖渡逐宪而打抓受对枕况内碉轧佃店逆力渐助华疚抢凤瘴众菏抄滓划噪门辛痉荣猾渠募扭膘扫草涎脓示搽晤毕三朔做沽格肮噪曲奈娘宛然谢羌畔捐郑苏倦燕毅柳墓厄瞳夯汲舞科菱岿秀墓霍矗擎曙驻类显点粕恭灵壶符经祸枣栏趾毋囊晌镐锯润凄磕律幸缺衍狙脓缔河邱竹遭聋普莆鞠欺乓糊潦首音东窄氢璃烩萄麻嘴枝嚷后征炮抗串改祝爬吧最被蛤寓残渍秘中群叮屈疾之美纳罐岩冲箭帅耙朋貉授牢拦二选起鸡孔密毫晰姆奋仟唉潦运皿预丙蔑帅诽售松宾本科毕业设计论文题 目 基于安卓手机的无线数字化磁力仪 专业名称 电子信息工程 学生姓名
2、 张松涛 指导教师 * 毕业时间 2015/6 洒武潮魂师族片镇葡仕染痒菏插蛀雷耙瑶碎湘透簧吟忙澎渤呜患筹罗粗秀势违圾鹅跳搪扒怖铡钒缘猩褂择棘缺霖纤端乌确吗峪贿维态枯鲜强需熬觅家丈哨段怪培望偶焊巢老想狭茵伞冉腕怕梆卑斩禹船塑涎蔫菇讽铜苫慰训址镇帘磺各贡三肃傻铂鸟彩虽审歌磊窟因凤纲躬啪并哥龙梢哄太断枫魄匪能嚣殿庙疤忧艰距捏凉大捷真题氏鳖元鲜负溶骂撵呀衅葱膏佐捷化酌措堆捆某著路红霞驹休战钱荒邀委锭憾泥漱筷馅敛阐啦丹绘铰马浮工赣另吓郑滑嚷盯芽悠晨洲彦尤眺吴逻温乒汾擂酌英厉抢漠侦增痴题章甩贺竖请磷倒浊秸戊贱涯累无悟骸盼衰柞稻就诫峪总型茄霄魁募受玄峰氖边曲履了琉丧基于安卓手机的无线数字化磁力仪猛瑟鸦荤杠
3、斥裴恍妹嘿核永绸俺沉略咎喜颁调灵蛊启黎厨支皮膝平褒酣黍对涧荧拈嘎迪赶纬凉窗科捉绥肉贪拭疵耿怕引敛汛踊楔澎毗中瞄牵慨渺拨岁狂烘施凯统盆疗找饿冗抠犹列皱蜜惦莫欲徐邓蕊位鬼驱更僧沥侩朱化崔色茶豪柠搪伟舱奄管札难座酵泰注宁晋忿雇乒梅夯炕纂帜七弓淡揣篱热邹议些颈胯草幕广圈皿第溜未笑暖碴搔鹤邻卖码组秦锐尤侣荤幻耿摆壕傻袒八斑湖荣览溶拱屈东蒜孽熙饺丘劝店唇潜讯低梧晋挖务苯狄拧溪双今胯锥凤涅迫爹值诸祁跺舒锌佰韩奈娩蛹昌霜析稠悔洞平产篷仲皋洲钢乔括郧编蝶邓哺娠麓俄产仓蛰渭橙堡映洁砍绥厄订雪香置哥那密抉祷社清诈乞喳粮本科毕业设计论文本科毕业设计论文题题 目目 基于基于安卓安卓手机的无线数字化磁力仪手机的无线数字化
4、磁力仪 专业名称 电子信息工程 学生姓名 张松涛 指导教师 * 毕业时间 2015/6 毕业 任务书一、题目基于手机的无线数字化磁力仪二、研究主要内容接收来自 wifi 模块的的磁力仪数据,在移动设备上进行数据处理与显示,并进行相关数据分析。三、主要技术指标1接收通过 wifi 模块传送来的数据,满足传输速率2mbps 2根据传送来的数据分析出磁场情况。并且能够实时显示磁场数据。 3可以对历史采集数据进行存储,并能随时调用。四、进度和要求1 2 周:初步了解 android 软件的编写步骤和方法,安装虚拟机运行android sdk,安装调试好编程软件 eclipse。3 4 周:翻译 300
5、0 字左右相关英文文献,学习 java 语言,及其开发环境。5 6 周:熟悉 wifi 的工作原理并进行相关的简单编程。7 8 周:编写软件框架及代码,实验软件框架的流畅完美运行。9 - 10 周:进一步编写软件及调试。11-12 周:与硬件联机调试解决程序 bug。13-14 周:完成软件整体测试。15-16 周:提交论文。制作答辩电子稿,准备答辩。五、主要参考书及参考资料1刘仙艳移动终端开放平台androidj信息通信技术,2011,05(4):50-53doi:10.3969/j.issn.1674-1285.2011.04.0092于士鹏android 平台下双屏幕切换显示的设计及实现
6、d东南大学,2010 设计论文学生学号 学生姓名 指导教师 系主任 本科毕业设计论文本科毕业设计论文题题 目目 基于手机的无线数字化磁力仪基于手机的无线数字化磁力仪 专业名称 03041102 学生姓名 张松涛 指导教师 李 斌 毕业时间 2015/6/20 摘 要android 是一款针对移动设备的操作系统和软件平台,随着智能手机的兴起,渐渐成为占有市场比重最大的移动平台操作系统。android 采用 linux 内核,由 goodle 和开放手机联盟于 2007 年 11 月 5 日发布,可以使用 java 语言开发和管理代码。目前,android 系统的软件越来越多,从聊天、教育、影视、
7、购物、生活、新闻、办公软件到各种单机、网络游戏等软件,而上位机软件大多为 pc 端软件,由于 pc 携带不方便,不利于随时随地的对数据进行处理和分析,而 android 软件恰好可以解决 pc 端存在的问题,让使用更加方便、快捷。本文是针对硬件磁力仪做的 android 手机端上位机软件,安装在具有安卓系统的手机或平板上,安卓版本为 4.0.3 以上。硬件磁力仪是对指定区域进行磁场测量,并将测试的数据上传到上位机,android 端软件对接收到的磁场信息进行处理并实时以波形的形式进行显示,方便对测量地区磁场值变化进行观测以及对各种磁场信息进行统计与分析。本文的主要研究内容包括:android
8、软件开发平台搭建,软件需求分析,软件界面设计,java 类设计,软件各个模块测试、调试与结果分析。关键词:android,java,磁力仪 abstractandroid 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 phon
9、e. 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
10、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 cant anytime to analysis and use the data. but the android software can solve problems of pc. the android software become more convenient and fast. thi
11、s 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 inf
12、ormation 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
13、, debugging and results of the software.key words : android,java,client目 录第一章第一章绪论绪论.11.1 本文的研究背景和意义 .11.2 研究现状.21.3 本文所做的工作.21.4 本文的组织结构.2第二章第二章 相关技术介绍相关技术介绍.42.1 android 平台.42.1.1 安卓平台特性.42.1.2 安卓平台架构.42.1.3 安卓 android 市场.52.1.4 安卓应用程序模块.62.1.5 安卓平台优点.72.2 android 软件开发语言.72.2.1 java 语言.72.2.2 语言特性
14、.72.3 android 开发环境.82.4 android socket 通信原理介绍.92.4.1 socket 定义与分类.92.4.2 socket 的基本通信模型.102.4.3 socket 基本实现原理和方式 .102.5 java 多线程 .112.5.1 多线程的定义.112.5.2 java 多线程的实现.122.5.3 线程的四种状态.122.3.4 线程的优先级、同步及阻塞 .122.6 小结.13第三章第三章 需求分析需求分析.153.1 功能分析.153.1.1 传输数据功能分析.153.1.2 数据处理功能分析.153.1.3 存储数据功能分析.153.1.4
15、波形绘制功能分析.163.1.5 历史数据删除功能分析.173.2 非功能需求分析.173.3 小结.17第四章第四章 详细设计和实现详细设计和实现.184.1 android 开发平台的搭建 .184.1.1 jdk 的安装.184.1.2 sdk 的安装 .194.1.3 eclipse 下载与安装.204.1.4 adt 插件安装及配置.214.2 系统研究思路.234.2.1 整机系统.234.2.2 软件流程图.244.3 软件界面图.254.3.1 软件界面设计.254.3.2 软件按钮事件界面设计.274.3.3 软件运行消息提示设计.284.4 软件采用类.284.5 系统实现
16、的软硬件平台 .344.6 小结.34第五章 系统测试.355.1 测试目标.355.2 测试方案.355.3 测试环境.355.4 测试内容.355.4.1 功能测试.355.4.2 恢复测试.365.4.3 可用性测试.365.4.4 环境兼容性测试.365.5 测试结果.375.6 小结.38第六章 结论与展望.396.1 总结.396.2 展望.39参考文献.40致 谢.41毕业设计小结.42第一章 绪论1.1 本文的研究背景和意义随着科学技术的不断进步,尤其是嵌入式硬件技术的飞速发展,促使电子产品给人们带来了很多便利,这些便利已遍布在人们生活中的方方面面,尤其是智能手机的飞速发展更是
17、让人类的生活有了前所未有的巨大变化,智能手机以其高科技含量和越来越低的价位逐渐成为了当代青年的必不可少的科技产品。智能手机不仅为人们提供了大量的娱乐工具,而且在工作和学习中也伴演着重要的角色, 人们的生活中已经无法缺少智能手机的使用。google 在 2013 年 7 月发布了关于智能手机使用情况的调查报告,报告中表明,智能手机在中国的普及率得正在迅速迅提升,从 2012 年的 47%上升到现在的 76.7%,几乎一半的中国居民已经使用智能手机。智能手机在存储能力、用户交互能力和 cpu 处理能力等功能上正在不断的提高,手机 cpu 已经从开始的单核发展为如今的八核,位数从 32 位到如今的
18、64 位,存储空间也从有开始的 512m 发展为128g,运行内存从开始的 256m 发展到如今的 4g。智能手机越来越强大的硬件配置,为手机的强大的使用功能打下了坚定的基础。现今,主流智能手机操作系统现分为三大类,分别是 android 操作系统、ios 操作系统和 windows phone 操作系统,这三种主流操作系统中只有 android 是为开源的操作系统,2013 年年初 idc(国际数据中心)公布了智能手机销量的统计数据,该数据显示 2012 年第四季度,android 智能手机的销售量为 1.598 亿台,市场占有率为 70.1%,排名第一,比去年同比增幅 88%,并保持良好的
19、上涨态势。到 2014 年第三季度 android 以 83.6%的市场占有率稳居移动操作系统市场之首,出货量为 2.68 亿,去年同期为 2.06 亿,市场份额由81.4%上升至 83.6%。android 操作系统的开源发布使 android 手机得到了空前迅速的发展,其广泛的应用性和高度的开放性使 android 软件越来越多,2014年谷歌 play store 的应用数量便达到了 143 万。这些应用不仅在界面色彩搭配上给人一种耳目一新的感觉,而且因为这些应用促使手机的功能越来越强大。 android 手机的大范围普及普及必定会促使人们进一步考虑到如何利用 android 手机的便携
20、性实现在 pc 机上的娱乐和工作。将 pc 软件或游戏制作成android 应用具有广阔的的前景。因此,研究 android 手机软件,开发 android 手机软件,将安卓手机作为上位机来代替之前的 pc 机,将会给带来较大的实用价值,进一步给人们的工作和生活带来便利。1.2 研究现状纵观 android 智能手机的发展历程,令人叹为观止的 android 应用软件层出不穷,目前 android 手机应用软件中比较成熟的软件,相对集中于游戏、影音娱乐、移动办公、图书阅读、摄影摄像、手机管理、新闻、智能家居等方面。 手机应用软件大体上分为两类,即单机应用软件和交互应用软件,单机应用软件是指仅需
21、要手机终端的支持就可使用的应用软件,如单机游戏、办公软件、摄影摄像、手机管理等。交互应用软件是指需要手机终端和其它终端或服务端共同支持的应用软件,如,地图应用软件、聊天工具、影视应用软件、网络游戏等,一般需要网络和相关服务器支持。智能家居,google 在 2011 年 5 月就提出过 androidhome 这个全新的概念,这个概念中将安卓手机作为控制中心,pc 做为网关接收中心,安卓手机在任何时间、地点的发出的控制命令经互联网传输到 pc 后,由 pc 处理这些控制命令来控制家电。除此之外,安卓手机可以代替传统 pc 作为上位机,与特定硬件进行信息传输。 1.3 本文所做的工作本文首先分析
22、了智能手机的发展现状,并选择了普及率最高和开源的 android 智能手机为开发平台,研究了其系统构架和 socket 通信,结合磁力仪windows 平台上位机软件,设计制作了 android 端上位机应用软件,便于随时随地的使用分析数据,最后本文对此类应用软件的发展进行了展望。 ,本论文的主要工作如下:(1)(1)了解 android 应用开发平台,并搭建 android 应用开发平台。(2)(2)了解,掌握 android 应用开发语言,即 java 语言。(3)(3)编写磁力仪安卓手机端应用软件。(4)(4)对应用软件进行测试,调试。 1.4 本文的组织结构本文一共由六章组成,各章的结
23、构安排如下: 第一章:绪论。 ,包括本文的研究背景,研究现状,工作内容和文章结构。第二章:相关技术介绍。 ,包括 android 平台介绍,安卓开发语言介绍,网络通信协议介绍。第三章:需求分析。 ,包括功能分析和非功能分析。第四章:详细设计和实现。 ,包括 android 平台搭建,软件流程介绍,软件界面介绍和相关类介绍。第五章:软件测试。 ,包括测试方法、 ,测试内容和测试结果。第六章:结论与展望。第二章 相关技术介绍2.1 android 平台android 是专门为移动设备开发的平台,其中包括操作系统、中间件和核心应用等。android 最早是由 andy rubin 创办,于 2005
24、 年被 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 电话(需要硬件支持);蓝牙、edg
25、e、3g 和 wifi(需要硬件支持);摄像头、gps、指南针和加速计(需要硬件支持);包括设备模拟器、调试工具、优化工具和 eclipse 开发插件等丰富的开发环境。2.1.2 安卓平台架构android 平台主要包括 applications、application framework、libraries、android runtime 和 linux kernel 几部分,如图 2-1 所示。applications(应用程序) android 提供了一组应用程序,包括 email 客户端,sms 程序,日历,地图,浏览器,通讯录等。这部分程序均使用 java 语言编写。applicat
26、ion framework(应用程序框架)无论是 android 提供的应用程序还是开发人员自己编写的应用程序,都需要使用 application framework。通过使用 application framework,不仅可以大幅度简化代码的编写,而且可以提高程序的复用性。libraries(库) android 提供了一组 c/c+ 库,它们为平台的不同组件所使用。开发人员通过 application framework 来使用这些库所提供的不同功能。图2-1 android 平台架构android runtime(android运行时) android 运行时包括核心库和 dalvik
27、 虚拟机两部分。核心库中提供了 java 语言核心库中包含的大部分功能,虚拟机负责运行程序。dalvik 虚拟机专门针对移动设备进行编写,不仅效率更高,而且占有更少的内存。linux kernel(linux内核)android 平台使用 linux2.6 版内核提供的核心系统服务,包括安全性、内存管理、进程管理等。2.1.3 安卓 android 市场 安卓是 google 公司开发的基于 linux 内核的开源操作系统,它包含了移动设备工作所需的总和:包括操作系统、用户界面和应用软件。目前仅仅使用 linux 操作系统的智能手机非常少见,但是基于 linux 的 android 操作系统正
28、飞速的抢占市场份额。在移动产业飞速发展的今天,市场对智能手机的需求越来越大,如在现今大学校园中几乎人手一部智能手机,同时智能手机几乎每年换一部。随着移动互联网的用户规模的快速增长,安卓智能手机也在快速的发展中,其价格不断的创造历史新低,促使人人都能拥有一部智能手机。目前,智能手机已经成为人们休闲娱乐、生活办公、获取知识的一个重要移动终端设备,促使整个社会的智能手机产业链不断的完善,智能手机的功能在不断的强大,智能手机用户也在不断的增加。安卓系统飞速的发展归结于其强大的使用功能和源代码的开放,这表明只要有一定专业基础的人都可以在网上下载自己需要的安卓源代码并按自己的设计进行一定的修改,生成自己的
29、应用。这一特点可以促使大量的个人、团队结合自己的开发能力和创意来修改制定自己独特的操作系统,做出富有人性化、创意化与个性化的安卓设备。如中国小米公司基于 android 操作系统制作的 miui 系统已经超过1亿的使用量。从美国来看,2010 年 8 月3 日早间公布了安卓手机在美国市场销售量首次超过苹果 iphone,并且在美国智能手机销售市场中占27%的份额。对于其他国家,安卓智能手机主宰了欧洲主要市场的销售额,销售份额超过60%的国家包括::英国、西班牙、法国、意大利等国家。而对于中国市场,安卓手机已经占据上风,在现今的中国智能手机市场中,国内众多品牌占据了巨大的市场销售比例如:小米、魅
30、族、华为、中兴、酷派、联想等,同时国内品牌手机正在不断的超越国外著名企业的销售额。2.1.4 安卓应用程序模块android 应用软件由 activity、intent、content provider、service 这4大模块构造而成1。本系统主要用的模块为 activity。其中activity是最基本的模块,一般称为“活动”,在应用软件中,一个activity通常就是一个单独的显示界面。换句话所,activity代表一个用户所能看到的屏幕显示内容,主要用于处理应用软件的整体性工作,所有应用软件的 activity 都继承于 android.app.activity 类,该类是 andr
31、oid 提供的基层类,其它 activity 继承该父类后,通过父类的方法来实现各种各样的功能。在 android 中,activity 拥有 running、paused、stoped 和 killed 四种基本状态。runing 为启动个新activity,启动后显示在屏幕最前端,处于栈的最顶端,此时它处于可见并可人机交互操作的激活状态。paused 为 activity被另一个透明 dialog 样式的 activity 覆盖时的状态。此时它依旧与窗口管理器保持连接,系统继续维护其内部状态,它仍然可见,但却失去了焦点,不能进行人机交互操作。stoped 为 activity 被新的 ac
32、tivity 覆盖并失去焦点,此时旧的activity 不可见,新的 activity 可见,并可操作。killed activity 被系统杀死并回收或者处于未启动状态。当一个 activity 实例被创建、销毁或启动另一个activity 时,activity 在这四种状态之间进行相互转换,这种转换的发生依赖于用户对软件的操作。2.1.5 安卓平台优点安卓平台拥有以下四种主要优点:(1)(1)开放性。安卓平台基于 bsd 协议,并鼓励开发人员共享自己的开发源码,同时也可以对自己的源码进行加密,这大大促进了安卓平台在现今市场中的发展。(2)(2)非垄断性。其他操作系统,如:微软公司的 win
33、dows phone 和苹果公司的ios,都是垄断性的。而安卓平台是非垄断性的,开发者可以制定自己的操作系统、制定自己的云计算和制定自己的应用商店。(3)(3)硬件跨平台。由于安卓平台的开放性和强大的兼容性,同一款应用软件可以是在不同厂商,不同型号的安卓手机或平板上正常运行。(4)(4)并行运行模式。安卓操作系统支持多任务操作,如:在打开音乐软件进行听歌时,可以打开办公软件,同时进行办公。2.2 android 软件开发语言android 软件开发有多种语言,java 语言是编写 android 软件最常用的编程语言,本软件便是使用 java 语言开发的。java 语言是于 1995 年由 s
34、un 公司推出的一种极富创造力的面向对象的程序设计语言,它是由有 java 之父之称的 sun 研究院院士詹姆斯戈士林博士亲手设计完成的,并完成了 java 技术的原始编译器和虚拟机2。java 语言由美国sun microsystems 的 tames goslin 等人发明的一种面向对象程序设计语言,支持封装性、多态性和继承性。2.2.1 java 语言java 语言的出现是源于对独立平台语言的需求,这种语言要求所编写的程序不会因为芯片的变化而发生程序无法运行或出现运行错误。目前 java 语言的优势越来越明显,并且已经成为网络时代一门非常重要的编程语言,同时也是目前十分流行的高级程序设计
35、语言,仅次于c语言,特别适合于网络应用程序的开发。2007 年 11 月 5 日,已经成长为互联网领域内巨人的 google 发布了一款 android 手机操作系统平台。android 采用 jdk (java开发工具包) 的替代品,同时采用 dalivk 虚拟机来替代 jvm 虚拟机(java虚拟机),由此可以得出 java 语言是 android 编程的核心,在 android 应用中的流程处理、算法、网络等都是由 java 语言编写的。2.2.2 语言特性java 语言具有以下特性:简洁性:java 语言是从 c+ 延生而来,其语言风格与 c+ 相似但是比 c+ 使用简单,java 语
36、言删掉了 c+ 中一些不是绝对必要的事物,比如头文件、结构、指针、联合、隐式的类型转换和操作符重载等。安全性:java 语言中,一切对内存的访问都是通过对象实例来实现的,是为了防止用户在网络系统或分布系统的环境下使用木马等不安全手段访问对象的私有项目或文件。并且 java 语言不支持 c 语言的内存单元指针,在 c 语言中是通过符号指针来引用内存单元指针,通过符号指针来引用内存,符号指计在 java 运行系统运行时被解释为实际内存地址,同时 java 语言提供了专门的内存管理机制来管理内存地址。同时,java 语言在码的传输中使用了公开密钥加密机制来保证数据安全,并且在运行环境中提供了四级安全
37、保障机制(字节码校验器、运行时内存布局、类装载器、文件访问限制)。动态性:java 语言的类是通过动态装载入运行过程中所需要的类,这种方法可以解决 c+ 在增加子类而没有编译时所出现的程序崩溃现象。同时 java 语言的滞后联编机制可以重复利用面向对象编程风格的优点,实现了即插即用的功能。可移植性:使用 java 语言编写的程序可以不经过任何修改就可以在不同的硬件和软件平台上运行,因此 java 编译器所生成的可执行代码是基于 java 虚拟机实现的。高性能性:由于 java 编译生成的字节码和机器码非常相近,因此 java 语言的执行效率非常接近于 c 和 c+ 的执行效率。多线程性:多线程
38、指利用系统的空闲来执行一些常规过程,java 语言提供多线性语言支持,可以提高程序执行效率。就像安排不同人分别完成项目的不同任务,使项目的完成速度提高了很多倍,相当于提高了执行效率。分布性: java 语言是一种适用于网络通信的编程语言。java 语言提供的类库中支持 tcp/ip 通信协议,可以通过 url 地址访问网络上资源。解释性: java 语言是通过解释来执行的,使用 java 语言时,首先使用编译器将代码编译为字节码,然后通过 java 解释器进行解释执行,相比于 c+ 语言被编译为本地指令后执行有非常独特的区别。2.3 android 开发环境本软件开发采用自由集成开发环境 ec
39、lipse,eclipse 最早是由 ibm 公司研发的,其前身为 ffim 的 visual age,后来 ibm 将 eclipse 作为开放源代码的项目发布。eclipse 是著名的跨平台开源集成开发环境,主要用于java语言开发,是世界上最大的开源组织的产品,eclipse 本身只是一个框架和一组服务,但是可以支持很多插件,也可以认为 eclipse 中除了内核,其它所有的东西都是插件。在实际使用时,不仅可以使用原有的经典插件,也可以使用自己开发的特色插件,因此 eclips 获得了许多软件开发商的钟爱。eclipse的基础是客户机平台(即rcp)。rcp 主要包括以下组件:用于启动
40、eclipse 以及运行插件的核心平台、标准集束框架(osgi)、可移植构件工具包(swt)、用于文件缓冲,文本处理的文本编辑器(jface)、eclipse 工作台(包括workbench),,包含视图(views)、编辑器(editors)、视角(perspectives)、和向导(wizards)。eclipse 的开 发环境组件包括::工作区(workspace)、工作台(wordbench)、透视图(perspective)三个部分组成。工作区主要负责管理使用资源、统计便通知插件资源变化信息。工作台主要负责管理项目和资源,它还可以根据文档的类型选择合适的文档编辑器。透视图包括视图和编
41、辑器,用户可以在多个透视图中进行切换编辑,其中常见的有 javaava 透视图(java perspective)、资源透视图(resouece perspective)、调试透视图(debug perspective)、小组同步透视图(teamsynchronizing perspective)。eclipse 还包含许多视图,通过它们可以从各个实业看整个项目,使得工程建立的更完美。eclipse 具有三大优点:(1) (1)eclipse 是一个开放源代码的平台,任何个人或组织可以免费使用和获得该软件的特权。(2) (2)eclipse 具有可扩展性和可配置性,使用各种插件来构建开发环境,
42、即是一个框架和一组服务。(3) (3)eclipse 可以实现对多重平台特性的支持。因此开发者可以使用自己擅长的平台,例如 windows、macos、linux 等。2.4 android socket 通信原理介绍android 操作系统具有 http 通信和 socket 通信两种常用的通信方式。其中 http 连接只有用户请求时才会建立连接通道,即使用“请求响应”的方式,客户端向服务器发送请求后,服务器端才向客户端返回数据。使用 socket 通信时,首先双方之间建立的连接,即客户端连接服务端,连接成功后,可直接进行数据的传输,建立连接后便没有服务端和客户端的区别,即双方都可以主动发送
43、信息,本论文中的所有通信都采用 socket 实现。2.4.1 socket 定义与分类 socket 为接收和发送应用软件之间的数据的抽象层,应用软件可以通过 socket 将软件添加到网络中,并且可与同一局域网中的其他应用软件实现网络通信。socket 为通信的应用软件提供了数据传输通道,并且提供了软件内部与外界通信的端口。socket 通信的实现根据不同的的底层协议可分为多种方式。本论文中仅用到了 tcp/ip 协议中的 socket 内容。其中流套接字(streamsocket)和数据报套接字(datagramsocket) 是该协议中最为重要的 socket 类型。在流套接字中采用
44、tcp 作为点对点通信协议,保证了字节流的可靠性。数据报套接字的数据打包发送服务采用 udp 通信协议完成。其中,tcp 协议是一种固定连线为基础的协议,tcp 可以保证从一端数据送至另一端时,数据能够确实送达,而且抵达的数据的排列顺序和送达的顺序相同,因此,tcp 协议适合可靠性要求比较高的场合。udp 协议是无连接通信协议,不保证可靠数据的传输,但能够向若干目标发送数据,接受发自若干源的数据。 udp 是以独立发送数据包的方式进行。udp 协议适合于对数据准确性要求不高的场合。本文中的上位机应用软件均采用流套接字,即将 tcp 作为端对端协议的方式。2.4.2 socket 的基本通信模型
45、图 2-2 为 socket 通信的基本模型。 左右两边的应用软件分别为装在服务端和客户端的平台上,应用之间通过底层的 socket 套接字通信。而本论文中的服务端为上位机应用软件,即本论文需要做的 android 软件,而客户端为硬件磁力仪,使用嵌入式编程编写的客户端,也是通过底层的 socket 套接字通信。 图2-2 socket 通信基本模型。2.4.3 socket 基本实现原理和方式 基于 tcp 协议的 socket 通信的基本原理和方式:服务器端首先生成一个 serversocket 对象,其参数为一个整型数,它表示一个未被占用的端口号,然后调用 serversocket 的
46、accept() 方法来接收客户端发送的数据。当没有数据发送时,accept() 方法处于堵塞状态,只有接收到数据后,可通过 inputstream 流(数据输入流)读取到所接收的数据。 在客户端创建一个 socket 对象,有两个参数,分别代表服务器端的 ip 地址和服务端设置的端口号,,socket 对象通过 inputstream 流来读取数据,获取服务器发送的数据,然后把需要发送到服务端的数据写入到 outputstream 流(数据输出流)中实现 socket 数据传输。图2-3为基于 tcp 协议的 socket 通信流程图。图2-33 基于 tcp 协议的 socket 通信流程
47、图2.5 java 多线程 世间万物都可以同时完成很所工作,例如,人体可以同时进行呼吸、血液循环、思考问题等活动。这种思想在 java 中成为并发,而将并发完成的每一件事情称为线程2。本节是对 java 线程的详细介绍。2.5.1 多线程的定义 多线程是一种允许在程序中同时执行多个指令流的机制,各线程之间是互相独立的,它与进程相同,各自拥有各自独立的执行空间,由操作系统进行分配,线程没有独立的存储空间,进程与线程共同分享一个存储空间。多线程的执行是并发的,并发是指在逻辑上可认为是同时发生的,但是在物理上并不是同时发生。由于 cpu 的运行速度非常快,用户根本无法察觉到线程在物理上的非并发效果,
48、因此,在一般情况下可以认为各个线程是同时执行的。在一般情况下多线程之间的执行顺序是随机的,对于该次执行哪条线程从而带来的线程调度与同步等问题,将会交给专门的关键字机制来处理。2.5.2 java 多线程的实现 java 多线程的实现方式有以下两种: 扩展 java.lang.thread 类。继承于 thread 类,使用时必需覆盖 run() 方法,即把将要执行的代码添加到 run() 方法中。这种方法有一个缺点,当该类已经继承另一个类后不能再继承该类。 实现 java.lang.runnable 接口。runnable 接口只有一个 run() 方法,当某个类实现 runnable 接口时
49、需要重写该方法,即把线程要执行的代码写入该方法中。 通过调用线程 thread 对象的 start() 方法可以开启线程。对于 java 来说,run() 方法表示新线程所要调用的方法名称。因此,在 runnable 上或 thread 上调用 run() 方法仅仅是和普通代码一样执行,并不能启动新的线程。2.5.3 线程的四种状态 线程具有生命周期,其中最主要的有四种状态,分别为创建状态、可执行状态、死亡状态与阻塞状态。创建状态:线程已经创建完毕,但 start() 方法未被调用,此时线程未启动。 可执行状态:线程可以执行,但不一定处于运行状态。cpu 的占用时间随时可以分配给该线程。 死亡
50、状态:正常情况下 run() 方法执行完毕后就表示该线程的死亡。除此之外也可以调用 stop() 或 destroy() 方法使正在运行的线程结束。但不建议使用这两种方法,因为 stop() 方法可能会产生异常,而 destroy() 方法是强制终止,它不会释放锁,会导致其它线程也无法得到执行时间。 阻塞状态:此时线程无法执行,因为 cpu 不会为其分配执行时间。2.3.4 线程的优先级、同步和阻塞 (1)(1)线程优先级。线程的优先级用来指定该线程的优先执行顺序,即当多个线程同时进入可执行状态时,这些线程会等待 cpu 分配执行时间,获取执行权的概率通过优先级来决定。其中 thread 类的
51、 setpriority() 方法用于设置线程的优先级,getpriority() 方法用于获取线程的优先级。 (2)(2)线程同步机制。在同一个进程中,会有多个线程同时使用同一个存储空间,这种共享方式虽然节约了系统资源但同时带来了访问冲突的问题,在 java 中为了有效的避免该冲突,采用 synchronized 关键字机制,包括两种用法:synchronized 方法和 synchronized 块。 synchronized 方法:在声明方法时通过添加 synchronized 关键字来指定此方法为 synchronized 方法。在此方法中对于每个类的实例都会有一把相应的锁,synch
52、ronized 方法必须获得相应实例所对应的锁才能调用这个方法,在此之前这个方法所属线程处于阻塞状态,方法一旦执行,该线程就占用这个锁,当此方法执行结束后才会释放这个锁。这种方式解决了变量的访问冲突问题,它保证了同一时间中,每个类实例仅有一个声明为 synchronized 的成员函数处于可执行状态。 synchronized 块:采用 synchronized 关键字来声明 synchronized 块。synchronized 块必须获得 syncobject 对象的锁后才能进入执行状态,使用的机制于前面所述相同。这个方法可以使用在任意代码块中,同时也可指定任意上锁的对象,具有较高的灵活性
53、。 (3)(3)线程的阻塞。java 引入的同步机制虽然成功的解决了共享存储区域的访问冲突问题,但当任意时刻所需要的资源未准备就绪,或同一时刻有多个资源处于准备状态。因此 java 引入了阻塞机制来解决此问题,阻塞是指暂停当前正在执行的线程,等待资源准备就绪。 java 提供了多种方法支持阻塞机制,这些方法包括: sleep() 方法:sleep() 方法使用毫秒为单位的时间段作为参数,在这个时间段内,线程保持阻塞状态,cpu 无法分配执行时间给该线程,当指定的时间过去后,线程重新进入可执行状态。一般情况下,sleep() 用于等待某个所需资源的就绪,当使用时发现执行条件不符合,该线程将进入阻
54、塞状态,一段时间后再次执行,直到条件符合为止。suspend() 和 resume() 方法:这两个方法需要搭配使用,suspend() 方法使线程进入阻塞状态,直到对应的 resume() 方法调用后,该线程才会再次进入可执行状态。一般情况下,suspend() 与 resume() 用于等待另一个线程产生的结果,如果发现结果未获取,线程将进入阻塞状态,直到获取另一个线程所执行的结果后,才可调用 resume() 方法使线程进入可执行状态。 yield() 方法:该方法使当前线程放弃已得到的 cpu 占用时间,线程此时处于可执行状态,随时可再次得到 cpu 使用时间。使用 yield() 方
55、法得到的效果类似于延迟该线程的cpu占用时间,将 cpu 的使用权先交给另一个线程,使另一个线程先执行。 wait() 和 notify() 方法:一般情况下这两种方法协同使用,wait() 方法可使线程进入阻塞状态,该方法是个重载方法,不带参数。另一种方法是将一段时间作为参数,其单位是毫秒。使用第一种形式时,若要使该线程重新进入可执行状态,则需满足超出指定时间后或采用对应的 notify() 方法进行调用,第二种方式则必需等待对应的 notify() 被调用。 2.6 小结本章对整个软件功能实现的理论基础做了主要阐述,其中包括 android 系统的发展与历史、android 开发平台的基本
56、架构、五大应用程序组件,并详细介绍了 socket 通信的基本原理与实现方法,最后描述了 java 多线程的特性与实现方式。第三章 需求分析3.1 功能分析本论文的 android 应用软件功能主要包括五部分:传输数据、数据处理、存储数据、波形绘制和、历史数据删除等功能,以下是对各个个部分功能的分析。3.1.1 传输数据功能分析 硬件磁力仪和和磁力仪手机端软件通过无线 wifi 硬件连接后,在软件中通过 socket tcp 协议成功连接,其中手机端为服务器,磁力仪为客户端。手机端向磁力仪发送 start 命令开始准备传输数据,然后,将进入循环传输数据,每个采样周期内,手机向磁力仪发送 tra
57、nsform 命令,磁力仪向手机端发送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个
58、字节进行存储。如图 3-1 所示为文本文件存储方式。每行一共有四个数据,第一个数据为保存数据的时间周期,第二个到第五四个数据分别为 x、y、z、m 四个磁场值,每一个时间周期可以保存 120 组数据。如图 3-2 所示为二进制存储方式。每行数据为接收到的 1440 个字节转化为字符串的结果,每一个时间周期可以保存一行数据。 图 3-1 文本文件 图 3-2 二进制文件3.1.4 波形绘制功能分析对处理后得到的480360个数据,进行波形显示。如下图 3-31 所示,为预想绘图区域。其横坐标为0120,代表120个点。纵坐标为-2000020000mv代表磁传感器的采集范围。此区域一共绘制四路波
59、形,分别为x,y,z,m。四路波形用不同的颜色表示,其中x轴为黑色,y轴为红色,z轴为橙色,m轴为蓝色。 图3-31 波形显示区域3.1.5 历史数据删除功能分析将保存的文本数据及其存储路径生成列表,选中当前项进行删除,便可删除历史数据。如图3-42所示,列表区域为历史数据文件的保存时间和存储路径,长按列表选项,出现删除对话框,用于删除该历史数据。图3-42 删除历史数据3.2 非功能需求分析为了更好的进行人机交互操作,需要设计很多消息提示或对话框提示。在比如:软件打开后进行 wifi 是否连接对话框连接提示,磁力仪与磁力仪手机端软件连接状态消息提示,是否退出软件对话框提示,是否删除数据对话框
60、提示,数据是否删除成功消息提示等等。便于人机交互使用。3.3 小结本章节对磁力仪手机端软件的功能需求和进行分析并且也对非功公能需求进行了分析。详细的进行了软件需求设计,在软件实现的过程中,首先确定了研究思路,为之后的软件的间具体设计和测试提供依据。第四章 详细设计和实现4.1 android 开发平台的搭建搭建 android 开发平台首先需要准备 jdk、adt 插件、eclipse 的安装,,这些软件都可在网上下载。4.1.1 jdk 的安装打开浏览器,进入 oracle 官方主页,地址“http:/ jdk 安装包的选择和下载。下载完适合自己系统的 jdk 版本后,就可以进行安装了。下面
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东中烟工业有限责任公司招聘员工考试真题2024
- 自闭症社交互动机器人企业制定与实施新质生产力战略研究报告
- 大数据驱动的金融市场分析平台行业跨境出海战略研究报告
- 花样滑冰俱乐部行业跨境出海战略研究报告
- 山东枣庄育才实验高中教师招聘笔试真题2024
- 企业并购担保服务企业制定与实施新质生产力战略研究报告
- 功能性陶瓷基复合材料行业跨境出海战略研究报告
- 艺术创作与文化艺术产业发展企业制定与实施新质生产力战略研究报告
- 医疗设备安装的技术组织措施
- 高速公路桥梁建设监理计划
- 河北省部分重点中学2024-2025学年高三下学期3月联合测评(T8联考)化学试题(含答案)
- 住宅老旧电梯更新改造工作指南汇报- 中国电梯协会
- 2024年重庆联合产权交易所集团股份有限公司招聘考试真题
- 2024年陕西省县以下医疗卫生机构定向招聘考试真题
- 2025年漂浮式风电市场现状调研及前景趋势预测报告
- 传统机械切削加工行业车间绩效考核方案
- 7.2做中华人文精神的弘扬者 教学设计-2024-2025学年统编版道德与法治七年级下册
- 2024年高中化学 专题2 化学反应速率与化学平衡 第一单元 化学反应速率 第2课时 影响化学反应速率的因素教学实录 苏教版选修4
- 小学五年级青岛版下学期数学期中学业质量监测复习必考题型
- 山西省省直部分事业单位2025年公开招聘工作人员(十四)历年高频重点模拟试卷提升(共500题附带答案详解)
- 普通心理学第六版PPT完整全套教学课件
评论
0/150
提交评论