吴永辉840134基于android系统的BMI软件的设计与研究Word文档格式.docx
《吴永辉840134基于android系统的BMI软件的设计与研究Word文档格式.docx》由会员分享,可在线阅读,更多相关《吴永辉840134基于android系统的BMI软件的设计与研究Word文档格式.docx(33页珍藏版)》请在冰豆网上搜索。
![吴永辉840134基于android系统的BMI软件的设计与研究Word文档格式.docx](https://file1.bdocx.com/fileroot1/2023-2/4/ce9ee3e1-196e-48e7-806a-77a0012fa7f6/ce9ee3e1-196e-48e7-806a-77a0012fa7f61.gif)
张永奎关东升
内容提要BMI指数是根据身高、体重、年龄以及地域来判断人体胖瘦程度以及是否健康。
Android作为Google开发的基于Linux平台的开源手机操作系统,它包括操作系统、用户界面和应用程序——移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。
Java是Sun公司发发布的面向对象的编程语言,可移植性高,是现在用的最广泛的编程语言之一。
论文首先介绍了BMI的特点,然后在比较几种常见的智能手机操作系统的基础上,对Android的平台软件的开发和设计实现作了相关介绍。
最后用java语言实现BMI在Android平台开发和应用,并介绍相应的功能。
关键词嵌入式BMIandroidjava
BMIandroidsystembasedonsoftwaredesignandresearch
Abstract:
BMIindexisbasedonheight,weight,age,andgeographicextent,andtodeterminewhetherfat,thin,healthybody.GoogledevelopedAndroidasaplatformforopensourceLinux-basedmobilephoneoperatingsystem,whichincludestheoperatingsystem,userinterfaceandapplications-requiredforallmobilephonesoftware,butthereisnopast,theexclusiverighttohinderthemobileindustrybarrierstoinnovation.JavaisSun'
scompanysentobject-orientedprogramminglanguage,portability,high,isnowthemostwidelyusedprogramminglanguages.
BMIpaperintroducesthecharacteristics,andthencompareseveralcommonsmartphoneoperatingsystem,basedontheAndroidplatformforsoftwaredevelopmentandrelateddesignandimplementationwereintroduced.Finally,BMIjavalanguagedevelopmentandapplicationsintheAndroidplatform,anddescribesthecorrespondingfunction.
Keywords:
EmbeddedBMIandroidjava
1.引言
很多国家及地区每年都会为当地的人口作身高和体重的统计。
这些统计数据,都可以转化成为BMI值,从而再统计出当地人口的BMI值分布。
根据这个分布,地方健康政府可以推算出当地人口的过重及过轻指标。
一般来说,都会采用统计出来的平均BMI值及其标准差值,再计算出其常态分布的最高5%及最低5%作为过重及过轻指标。
我国在这个方面还没有引起太大的重视,有的软件是只是功能单一,没有相应的指导意见。
这个软件就根据这个缺点并加入一些人性化的建议说明而开发的。
2007年11月5日,Google与其他33家手机制造商(包含摩托罗拉、宏达电、三星、LG)、手机晶片供应商、软硬体供应商、电信业者所联合组成的开放手持装置联盟(OpenHandsetAlliance),发布了名为[Android]的开放手机软硬体平台。
参与开放手持装置联盟的这些厂商,都会基于Android平台,来开发新的手机业务。
2008年9月24日,T-Mobile首度公布第一台Android手机(G1)的细节,同日Google也释出了AndoridSDK1.0rc1。
对应用程式开发者而言,1.0代表了开发者可以放心地使用API,而不必再担心API有太大的变动。
G1在同年10月20正式发售。
在发售前仅针对原T-Mobile用户的预购活动中,已经被预购了150万台。
在10月21日,OpenHandsetAlliance公开了全部Android的原始码。
从此,开发者拥有了一个完全开放的手机平台。
截止目前已经有多款使用Android的智能手机,超过8万的应用程序。
在不到两年时间的发展中,美国市场研究公司NPD2010年发布的统计数据显示,第一季度期间,Android手机在美国市场的销量已超过iPhone,占据该季度美国智能手机总销量的28%,iPhone相应的份额为21%。
2.Android操作系统简介
Android是基于Linux内核的操作系统,早期由Google开发,后由开放手机联盟开发。
它采用了软件堆层的架构,主要分为三部分。
底层以Linux内核工作为基础,只提供基本功能;
其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。
另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。
目前最新版本为Android3.0。
2.1几种智能手机系统的比较
手机操作系统一般只应用在高端智能化手机上。
目前,在智能手机市场上,中国市场仍以个人信息管理型手机为主,随着更多厂商的加入,整体市场的竞争已经开始呈现出分散化的态势。
从市场容量、竞争状态和应用状况上来看,整个市场仍处于启动阶段。
目前应用在手机上的操作系统主要有PalmOS、Symbian、Windowsmobile、Linux和iPhoneOS、黑莓六种。
1.PalmOS
这是一种32位的嵌入式操作系统,主要运用于移动终端上。
此系统最初由3Com公司的PalmComputing部开发,目前PalmComputing已经独立成一家公司。
PalmOS与同步软件HotSync结合可以使移动终端与电脑上的信息实现同步,把台式机的功能扩展到了移动设备上。
PalmOS操作系统由Palm公司自行开发的,并授权给Handspring、索尼和高通等设备厂家,这种操作系统更倾向于PDA的操作系统。
2.Symbian
Symbian是一个实时性、多任务的纯32位操作系统,具有功耗低、内存占用少等特点,非常适合手机等移动设备使用,经过不断完善,可以支持GPRS、蓝牙、SyncML、以及3G技术。
最重要的是它是一个标准化的开放式平台,任何人都可以为支持Symbian的设备开发软件。
与微软产品不同的是,Symbian将移动设备的通用技术,也就是操作系统的内核,与图形用户界面技术分开,能很好的适应不同方式输入的平台,也可以使厂商可以为自己的产品制作更加友好的操作界面,符合个性化的潮流,这也是用户能见到不同样子的symbian系统的主要原因。
现在为这个平台开发的java程序已经开始在互联网上盛行。
用户可以通过安装这些软件,扩展手机功能。
3.Windowsmobile
WindowsMobile系统包括PocketPC和Smartphone以及MediaCenters,PocketPC针对无线PDA,Smartphone专为手机,已有多个来自IT业的新手机厂商使用,增长率较快。
按照微软官方的说法:
“WindowsMobile将熟悉的Windows体验扩展到了移动环境中,所以您可以立即使用它投入工作。
”
4.Linux
Linux系统是一个源代码开放的操作系统,目前已经有很多版本流行。
但尚未得到较广泛的支持。
Linux进入到移动终端操作系统近二年多时间,就以其开放源代码的优势吸引了越来越多的终端厂商和运营商对它的关注,包括摩托罗拉和NTTDoCoMo等知名的厂商。
已经开发出的基于Linux的手机有摩托罗拉的A760、A768、CEC的e2800、三星的i519等。
2004年6月在日本东京BIGSIGHT展览馆举办的“LinuxWorldExpo/Tokyo2004”博览会上,日本手机大厂商NEC则展示了其采用Linux操作系统的手机。
我国的大唐电信也于7月宣布将Linux作为其TD-SCDMA3G手机操作系统。
Linux与其它操作系统相比是个后来者,但Linux具有二个其它操作系统无法比拟的优势。
其一,Linux具有开放的源代码,能够大大降低成本。
其二,既满足了手机制造商根据实际情况有针对性地开发自己的Linux手机操作系统的要求,又吸引了众多软件开发商对内容应用软件的开发,丰富了第三方应用。
然而Linux操作系统有其先天的不足:
入门难度高、熟悉其开发环境的工程师少、集成开发环境较差;
由于微软PC操作系统源代码的不公开,基于Linux的产品与PC的连接性较差;
尽管目前从事Linux操作系统开发的公司数量较多,但真正具有很强开发实力的公司却很少,而且这些公司之间是相互独立的开发,很难实现更大的技术突破。
5.iPhoneOS
iPhoneOS或OSXiPhone是由苹果公司为iPhone开发的操作系统。
它主要是给iPhone和iPodtouch使用。
就像其基于的MacOSX操作系统一样,它也是以Darwin为基础的。
iPhoneOS的系统架构分为四个层次:
核心操作系统层(theCoreOSlayer),核心服务层(theCoreServiceslayer),媒体层(theMedialayer),可轻触层(theCocoaTouchlayer)。
6.BlackBerry
“黑莓”BlackBerry是美国市场占有率第一的智能手机,这得益于它的制造商RIM(ResearchinMotion)较早地进入移动市场并且开发出适应美国市场的邮件系统。
大家都知道BlackBerry的经典设计就是宽大的屏幕和便于输入的QWERTY键盘,所以BlackBerry一直是移动电邮的巨无霸。
黑莓机的另一个特色,就是内建多款实时通讯软件,包括BlackBerryMessenger、GoogleTalk及YahooMessenger,不过目前只能用英文做沟通,软件仍不支持对中文字体的显示。
正因为是正统的商务机,所以它在多媒体播放方面的功能非常孱弱,也许它在未来应该着力改善这个弱点,因为手机功能的整合是大势所趋,人们不会只满足于单一的功能。
2.2Android的体系结构与设计实现
2.2.1Android体系结构简介
Android平台是一组面向移动设备的软件包,它包含了一个操作系统、中间件和关键应用程序。
开发人员可以使用AndroidSDK(软件开发工具包)为这个平台创造应用程序。
应用程序使用Java语言编写并在Dalvik之内运行。
Dalvik是一款量身定制的虚拟机,它专为嵌入式应用设计,运行在Linux内核上层。
2.2.2Android架构
下图显示了Android操作系统的主要组件。
图2.1Android操作系统的主要组件
2.3.3LinuxKernel(Linux内核)
Android依赖Linux2.6版,提供核心系统服务:
安全、内存管理、进程管理、网络组、驱动模型。
内核部分还相当于一个介于硬件层和系统中其他软件组之间的一个抽象层次。
2.3.4ApplicationFrameworks(应用框架)
Android的核心应用程序就是依赖框架层次API开发的,程序员们可以充分使用这些API。
应用架构设计的初衷是:
简化组件复用机制;
任何应用都能发布自己的功能,这些功能又可以被任何其他应用使用(当然要受来自框架的强制安全规范的约束)。
和复用机制相同,框架允许组件的更换。
2.2.5Libraries(库)
Android包含一套C/C++库,Android系统的各式组件都在使用。
这些功能通过Android应用框架暴露给开发人员。
Android的核心类库提供Java类库所提供的绝大部分功能。
每个Android应用都运行在自己的进程上,享有Dalvik虚拟机为它分配的专有实例。
为了支持多个虚拟机在同一个设备上高效运行,Dalvik被改写过。
Dalvik虚拟机执行的是Dalvik格式的可执行文件(.dex)该格式经过优化,以降低内存耗用到最低。
Java编译器将Java源文件转为class文件,class文件又被内置的dx工具转化为dex格式文件,这种文件在Dalvik虚拟机上注册并运行。
在一些底层功能——比如线程和低内存管理方面,Dalvik虚拟机是依赖Linux内核的。
2.2.6Applications(应用)
Android将预装一组核心应用程序,包括email客户端、短信服务、日历日程、地图服务、浏览器、联系人和其他应用程序。
所有应用程序都是Java编程语言编写的。
3.搭建Android开发环境
3.1系统需求
编写Android的应用程序,需要一套个人电脑系统。
至于操作系统的部份,几个主流操作系统都有支持。
支持的操作系统如下:
WindowsXP、Vista或Windows7
MacOSX10.4.8或之后版本(适用x86架构的IntelMac)
Linux(官方于Ubuntu6.10DapperDrake上测试)
3.2安装相应的开发工具
3.2.1下载Eclipse
首先需要下载Android开发时会用到的整合开发环境Eclipse。
目前Android应用程序只支持使用[Java]程式语言来编写Android应用程式。
所以开发前必须先安装Java开发套件(JavaDevelopmentKit,JDK)。
各平台的JDK可至OSX作业系统则已内建JDK。
安装好JDK后,可以前往Eclipse网站下载Eclipse这个方便的整合开发环境。
下载Eclipse时可以选[EclipseIDEforJavaDevelopers]或[EclipseIDEforJavaEEDevelopers]这两种版本,只有这两种版本才会预装EclipseJDT扩充套件。
我选择的是[EclipseIDEforJavaDevelopers]版本。
下载完同样先解压缩到适当目录下。
3.2.2安装Eclipse
Eclipse不需要安装,只要确认你的系统上有安装Java,即可直接开启Eclipse资料夹,点击Eclipse开始执行Eclipse整合开发环境。
第一次启动Eclipse时会弹出视窗让你决定预设的工作目录。
一般使用Eclipse预设的工作目录即可。
进入到EclipseIDE后,就能安装Android开发工具扩充套件。
3.2.3安装ADT扩充套件
在Eclipse上安装Android开发工具(ADT)。
我采用的是离线安装,前往Updates]选项,这选项会带出一个新视窗。
选择[AvailableSoftware]标签,选择右方的[AddSite...](新增网站)按钮,会弹出一个输入框。
选择右上角的[Local...]按钮,并选取刚下载的Android最新开发工具档案,选到之后按下"
OK"
按钮离开。
在视窗中全选新出现项目的所有选项后,按下右方的[Install]按钮。
Eclipse会花一点时间开始安装ADT扩充套件。
3.2.4下载并设定AndroidSDK
到google官网上下载最新版本的AndroidSDK并解压。
打开偏好设定页面(Preference),选择Android标签(请确认您已安装好ADT扩充套件,Android标签才会出现在偏好设定页面中),在SDKLocation栏位按下"
Browse..."
键,选择刚刚解压缩完的[android_sdk]文件夹所在地,然后按下视窗右下角的应用(Apply)按钮。
这样一来,AndroidSDK就算是设定好啦。
设定好AndroidSDK后,就拥有了一个完整的Android开发环境。
4.程序开发
4.1创建名为BMI的工程
选择[File->
New->
Project],会弹出[NewProject]对话视窗,将新工程名称命名为BMI。
在[内容]栏里,选择[在工作区域中建立新工程](Createnewprojectinworkspace)。
对"
NewAndroidProject"
对话框中相应的属性中填入以下的值:
名称值
ProjectNameBMI
ApplicationNameBMI
PackageNamecom.demo.android.bmi
CreateActivityBmi
MinSDKVersion3
填好值后按下[Finish]按钮,就建立好新工程了。
4.2实现相应的功能
在Android开发java程序时需要划分成各种功能模块来进行相应的开发。
4.2.1设计使用者界面
先打开[res/layout/main.xml]。
定义一个基本BMI程序所需的身高(Height)输入栏位,就会用到EditText,与TextView界面元件,其描述如下:
1<
TextView
2android:
layout_width="
fill_parent"
3android:
layout_height="
wrap_content"
4android:
text="
身高(cm)"
5/>
6<
EditTextandroid:
id="
@+id/height"
7android:
8android:
9android:
numeric="
integer"
10android:
"
11/>
可以看到EditText界面元件描述的基本的组成与TextView界面元件相似,都用到了[android:
layout_width]与[android:
layout_height]属性。
另外,指定的另外两个属性[android:
numeric]、[android:
text]则是EditText界面元件的特别属性。
[android:
text]属性是继承自TextView界面元件的属性。
将[android:
numeric]指定为[integer],可以限制使用者只能在EditText文字栏位中输入整数数字。
text]属性则是指定EditText界面元件预设显示的文字(数字)。
再来看看Button(按钮)界面元件
<
Buttonandroid:
@+id/submit"
android:
计算BMI"
/>
Button界面元件同样有[android:
layout_height]属性,另外一个[android:
text]属性则用来显示按钮上的文字。
完整的[main.xml]界面描述档如下:
?
xmlversion="
1.0"
encoding="
utf-8"
>
LinearLayoutxmlns:
android="
orientation="
vertical"
体重(kg)"
@+id/weight"
TextViewandroid:
id="
@+id/result"
@+id/suggest"
/LinearLayout>
可以启动模拟器检视执行结果。
或是在页面标签下选择[Layout]标签,来预览页面配置。
4.2.2将字串抽离XML
打开res/values/strings.xml。
原始的内容为
resources>
stringname="
app_