武汉理工大学《嵌入式系统开发实训》课程设计说明书
课程名称 嵌入式系统开发实训
题 目 基于安卓的体重指数计算器程序设计
学 院 计算机科学与技术
专 业 计算机科学与技术
班 级 计科1103班
姓 名 闫敏
指导教师 夏又新
2014年 12 月 28 日
武汉理工大学《嵌入式系统开发实训》课程设计说明书
课程设计任务书
学生姓名 闫敏 专业班级 计算机1103
指导教师 夏又新 工作单位 计算机学院
题 目: 基于An dr o i d的体重指数计算器程序的设计与实现
初始条件
1 理论综合运用嵌入式系统设计、计算机组成原理、 java语言程序设计方法等课程的专业知识。
2实践学习和使用嵌入式实验箱飞凌ok210的使用方法、基于Android的交叉编译软件环境。在飞凌ok210实验箱上完成课程设计题目要求的功能。
要求完成的主要任务: 包括课程设计工作量及其技术要求以及说明书撰写等具体要求
课程设计内容
利用嵌入式实验箱飞凌ok210搭建嵌入式系统开发环境在Android环境下编写应用程序完成以下功能并撰写嵌入式系统设计报告
1.友好的人机界面
2.可以输入相关参数
3.计算后给出体重指数值和建议。
课程设计报告书正文的内容应包括
1 系统描述问题域描述
2 系统总体分析
3 系统总体设计
4 详细的流程图或伪代码
5 软件的测试方法和测试结果
6 研制报告研制过程本设计的评价、特点、不足、收获与体会等
时间安排
指导教师签名 夏又新 2014年 12月6 日
系主任或责任教师签名 年 月 日
武汉理工大学《嵌入式系统开发实训》课程设计说明书
目录
1.系统描述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
1.1背景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
1.2功能描述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
1.3开发环境介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
1.3.1 Android体系结构简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
1.3.2Android架构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
1.3.3应用框架. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
1.3.4库. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
1.3.5应用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
1.4开发环境的安装. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
1.4.1下载Eclipse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
1.4.2安装Eclipse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
1.4.3安装ADT扩充套件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
1.4.4下载并设定Android SDK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
1.4.5创建名为BMI的工程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
2.需求分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
2.1功能需求. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
2.1.1用户触发事件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
2.1.2基本需求控制. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
2.2性能需求. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
2.2.1响应时间. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
2.2.2稳定性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
2.2.3安全性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
3.系统总体设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
3.1工程总体架构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
3.2系统框架设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
3.3界面设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
4.详细的流程图和伪代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
4.1流程图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
4.2主要功能伪代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
5.软件的测试方法和测试结果. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
5.1测试用例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
5.2测试结果及分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
6.研制报告. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
6.1系统的缺陷. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
6.2总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
7.参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
1
武汉理工大学《嵌入式系统开发实训》课程设计说明书
1.系统描述
1.1背景
很多国家及地区每年都会为当地的人口作身高和体重的统计。这些统计数据都可以转化成为BMI值从而再统计出当地人口的BMI值分布。根据这个分布地方健康政府可以推算出当地人口的过重及过轻指标。一般来说都会采用统计出来的平均BMI值及其标准差值再计算出其常态分布的最高5%及最低5%作为过重及过轻指标。我国在这个方面还没有引起太大的重视有的软件是只是功能单
一没有相应的指导意见。这个软件就根据这个缺点并加入一些人性化的建议说明而开发的。
2007年11月5日 Google与其他33家手机制造商(包含摩托罗拉、宏达电、三星、 LG) 、手机晶片供应商、软硬体供应商、 电信业者所联合组成的开放手持装置联盟(Open HandsetAlliance) 发布了名为[Android]的开放手机软硬体平台。参与开放手持装置联盟的这些厂商都会基于Android平台来开发新的手机业务。
2008年9月24日 T-Mobile首度公布第一台Android手机(G1)的细节 同日Google也释出了Andorid SDK 1.0 rc1。对应用程式开发者而言 1.0代表了开发者可以放心地使用API而不必再担心API有太大的变动。 G1在同年10月20正式发售。在发售前仅针对原T-Mobile用户的预购活动中 已经被预购了150万台。在10月21日 Open Handset Alliance公开了全部Android的原始码。从此开发者拥有了一个完全开放的手机平台。截止目前已经有多款使用Android的智能手机超过8万的应用程序。
在不到两年时间的发展中,美国市场研究公司NPD 2010年发布的统计数据显示第一季度期间 Android手机在美国市场的销量已超过iPhone 占据该季度美国智能手机总销量的28% iPhone相应的份额为21%。
2
武汉理工大学《嵌入式系统开发实训》课程设计说明书
1.2功能描述
该系统主要实现体重指数的计算通过身高和体重来计算体重指数指数公式为体重除以身高的平方 即为BMI的值如果大于25则为偏重如果小于20则体重偏瘦若在20到25之间则体重正常。
1.3开发环境介绍
Android是基于Linux内核的操作系统早期由Google开发后由开放手机联盟开发。它采用了软件堆层的架构主要分为三部分。底层以Linux内核工作为基础只提供基本功能其他的应用软件则由各公司自行开发以Java作为编写程序的一部分。另外为了推广此技术 Google和其它几十个手机公司建立了开放手机联盟。 目前最新版本为Android3.0。
1.3.1 Android体系结构简介
Android平台是一组面向移动设备的软件包它包含了一个操作系统、 中间件和关键应用程序。开发人员可以使用Android SDK(软件开发工具包)为这个平台创造应用程序。应用程序使用Java语言编写并在Dalvik之内运行。 Dalvik是一款量身定制的虚拟机它专为嵌入式应用设计运行在Linux内核上层。
1.3.2Android架构
下图显示了Android操作系统的主要组件。
3
武汉理工大学《嵌入式系统开发实训》课程设计说明书
图1 Android操作系统的主要组件
1.3.3应用框架
Android的核心应用程序就是依赖框架层次API开发的程序员们可以充分使用这些API。应用架构设计的初衷是简化组件复用机制任何应用都能发布自己的功能这些功能又可以被任何其他应用使用当然要受来自框架的强制安全规范的约束。和复用机制相同框架允许组件的更换。
1.3.4库
Android包含一套C/C++库 Android系统的各式组件都在使用。这些功能通过Android应用框架暴露给开发人员。Android的核心类库提供Java类库所提供的绝大部分功能。每个Android应用都运行在自己的进程上享有Dalvik虚拟机为它分配的专有实例。为了支持多个虚拟机在同一个设备上高效运行 Dalvik被改写过。 Dalvik虚拟机执行的是Dalvik格式的可执行文件.dex该格式经过优
4
武汉理工大学《嵌入式系统开发实训》课程设计说明书
化 以降低内存耗用到最低。 Java编译器将Java源文件转为class文件 class文件又被内置的dx工具转化为dex格式文件这种文件在Dalvik虚拟机上注册并运行。在一些底层功能——比如线程和低内存管理方面 Dalvik虚拟机是依赖Linux内核的。
1.3.5应用
Android将预装一组核心应用程序包括email客户端、短信服务、 日历日程、地图服务、浏览器、联系人和其他应用程序。所有应用程序都是Java编程语言编写的。
编写Android的应用程序需要一套个人电脑系统。至于操作系统的部份几个主流操作系统都有支持。
支持的操作系统如下
Windows XP 、 Vista或Windows 7
Mac OS X 10.4.8或之后版本(适用x86架构的Intel Mac)
Linux(官方于Ubuntu 6. 10 Dapper Drake上测试)
1.4开发环境的安装
1.4.1下载Eclipse
首先需要下载Android开发时会用到的整合开发环境Eclipse。 目前Android应用程序只支持使用[Java]程式语言来编写Android应用程式。所以开发前必须先安装Java开发套件(Java Development Kit, JDK) 。各平台的JDK可至http://java. sun.com/下载。 Mac OS X作业系统则已内建JDK。安装好JDK后可以前往Eclipse网站下载Eclipse这个方便的整合开发环境。下载Eclipse时可以选[Eclipse IDE for Java Developers]或[Eclipse IDE for Java EEDevelopers]这两种版本 只有这两种版本才会预装Eclipse JDT扩充套件。我选择的是[Eclipse IDE for Java Developers]版本。下载完同样先解压缩到适当目录下。
5
武汉理工大学《嵌入式系统开发实训》课程设计说明书
1.4.2安装Eclipse
Eclipse不需要安装 只要确认你的系统上有安装Java 即可直接开启Eclipse资料夹 点击Eclipse开始执行Eclipse整合开发环境。第一次启动Eclipse时会弹出视窗让你决定预设的工作目录。一般使用Eclipse预设的工作目录即可。进入到EclipseIDE后就能安装Android开发工具扩充套件。
1.4.3安装AD T扩充套件
在Eclipse上安装Android开发工具(ADT) 。
我采用的是离线安装前往http://developer.android.com/sdk/adt_download.html手动下载最新的开发工具版本来离线安装。下载完最新的ADT扩充套件后打开Eclipse开发环境找到屏幕上方的选单列选择[Help->Software Updates]选项这选项会带出一个新视窗。选择[Available Software]标签选择右方的[Add Site. . . ] (新增网站)按钮会弹出一个输入框。选择右上角的[Local. . . ]按钮并选取刚下载的Android最新开发工具档案选到之后按下"OK"按钮离开。在视窗中全选新出现项目的所有选项后按下右方的[Install]按钮。 Eclipse会花一点时间开始安装ADT扩充套件。
1.4.4下载并设定Android SDK
到google官网上下载最新版本的Android SDK并解压。打开偏好设定页面(Preference) 选择Android标签(请确认您已安装好ADT扩充套件 Android标签才会出现在偏好设定页面中) 在SDK Location栏位按下"Browse. . . "键选择刚刚解压缩完的[android_sdk]文件夹所在地然后按下视窗右下角的应用(Apply)按钮。这样一来 Android SDK就算是设定好啦。
设定好Android SDK后就拥有了一个完整的Android开发环境。
6
武汉理工大学《嵌入式系统开发实训》课程设计说明书
1.4.5创建名为BMI的工程
选择[File->New->Project] 会弹出[New Project]对话视窗将新工程名称命名为BMI。在[内容]栏里选择[在工作区域中建立新工程] (Create newproject in workspace) 。对"New Android Project"对话框中相应的属性中填入以下的值
名称 值
Project Name BMI
Application Name BMI
Package Name com.demo.android.bmi
Create Activity Bmi
Min SDK Version 3
填好值后按下[Finish]按钮就建立好新工程了。
2.需求分析
2.1功能需求
2.1.1用户触发事件
用户通过点击屏幕来实现与数据的交互。软件上的相关按钮是操作请求的输入设备屏幕是用于向用户输出信息的输出设备。
事件是来自人操作的重要的消息触发时间如表1所示体重指数计算器系统中可能发生的所有事件响应及其执行结果。
7
如今我们还有在做个人网站吗?随着自媒体和短视频的发展和兴起,包括我们很多WEB2.0产品的延续,当然也包括个人建站市场的低迷和用户关注的不同,有些个人已经不在做网站。但是,由于我们有些朋友出于网站的爱好或者说是有些项目还是基于PC端网站的,还是有网友抱有信心的,比如我们看到有一些老牌个人网站依旧在运行,且还有新网站的出现。今天在这篇文章中谈谈有网友问关于个人网站备案的问题。这个也是前几天有他在选择...
易探云怎么样?易探云是目前国内少数优质的香港云服务器服务商家,目前推出多个香港机房的香港云服务器,有新界、九龙、沙田、葵湾等机房,还提供CN2、BGP及CN2三网直连香港云服务器。近年来,许多企业外贸出海会选择香港云服务器来部署自己的外贸网站,使得越来越多的用户会选择易探云作为网站服务提供平台。今天,云服务器网(yuntue.com)小编来谈谈易探云和易探云服务器怎么样?具体香港云服务器多少钱1个...
DiyVM是一家低调国人VPS主机商,成立于2009年,提供的产品包括VPS主机和独立服务器租用等,数据中心包括香港沙田、美国洛杉矶、日本大阪等,VPS主机基于XEN架构,均为国内直连线路,主机支持异地备份与自定义镜像,可提供内网IP。最近,商家对香港机房VPS提供5折优惠码,最低2GB内存起优惠后仅需50元/月。下面就以香港机房为例,分享几款VPS主机配置信息。CPU:2cores内存:2GB硬...