Android应用程序设计报告学院:信息工程与自动化学院专业:通信工程班级:姓名:学号:日期:2014年7月8日一、背景介绍随着移动通信与Internet向移动终端的普及,网络和用户对移动终端的要求越来越高,而Symbian,WindowsMobile,PalmOS等手机平台过于封闭,不能很好的满足用户的需求,因此市场迫切需要一个开发性很强的平台。经过多年的发展,第三代数字通信(3G)技术活动了广泛的接受,它为移动终端用户带来了更快的数据传输速率。随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。Google为此于2007年11月推出了一个专为移动设备设计的软件平台——Android。Android是一套真正意义上的开发性的移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Android是由Linux+Java构成的开源软件,允许所有厂商和个人在其基础上进行开发。Android平台的开放性等特点既能促进技术(包括平台本身)的创新,又有助于降低开发成本,还可以是运营商能非常方便地制定自己的特色化的产品。因此,它具有很大的市场发展潜力。二、需求分析如今,伴随着GoogleAndroid操作系统的盛行,基于AndroidSDK的系统开发和基于Android应用的开发等已倍受大家关注。Android应用面向的是普通个体用户,这些用户往往会更加关注用户体验,因此Android应用增加多媒体功能十分必要。就目前的手机发展趋势来看,手机已经不再是单一的通讯工具,更多的手机用户希望在工作、学习之余通过方便灵巧可随身携带的仪器休闲娱乐。而且近年来,由于人们生活水平的提高,越来越多的人开始关注人体健康,而体重也成为了人们关注的重点,尤其是女性。因此为了迎合众多用户的需求并适应现在的手机的规模,我们提出了一个计算标准体重的设计。三、设计目的Android以Linux为核心的Android行动平台,使用Java作为编程语言。本设计是在学习java语言程序设计的基础上进行的一次综合实践。通过综合训练,要求学生掌握java语言程序设计的基本技能和Android编程的应用,并较系统地掌握JAVA语言程序设计开发方法以及帮助文件的使用等,使学生通过本次设计,能够进行独立的Android应用程序开发,能够在实际操作中得到进一步的提高,为以后的学习和工作打下良好的基础。四、开发环境操作系统:Windows7开发软件:eclipse开发语言:java+Android类库+xml五、设计思路1、功能分析该设计实现了一个可计算输出标准体重功能的应用程序。通过查询可知,世界卫生组织推荐的计算标准体重的方法为:男性标准体重=(身高-80)*0.7;女性标准体重=(身高-70)*0.6”。因此需要获知的输入信息有性别、身高。因此设置两个页面,第一个页面有一个单选框确定性别,一个输入框以获取身高。第二个页面有一个结果输出显示区域。3、模块划分通过程序功能分析,可将程序划分为2个模块,即2个Activity:(1)初始化模块:两个单选框(RadioButton)获取性别,一个输入框(EditText)获取身高,一个按钮(Button)及一些提示文本。(2)结果显示模块:一个文本显示区(TextViw)显示计算结果。六、程序实现及代码分析1、第一个Activity(初始化模块)(1)布局文件:main.xml:采用绝对布局,以实现控件精准显示;①RadioGroup包含两个RadioButton,以实现性别男女选择,程序如下:RadioButtonandroid:id=@+id/sex1android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:text=男的/RadioButtonRadioButtonandroid:id=@+id/sex2android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:text=女的②一个供输入的EditText限定了输入类型为numberDecimal,以确保只接收数字型数据。代码如下:/RadioGroupEditTextandroid:id=@+id/heightandroid:layout_width=130pxandroid:layout_height=wrap_contentandroid:textSize=18spandroid:layout_x=96pxandroid:layout_y=142pxandroid:numeric=decimal③一个“计算”按钮Button,单击可以跳到显示模块界面,显示结果。程序如下:/TextViewButtonandroid:id=@+id/button1android:layout_width=70pxandroid:layout_height=48pxandroid:layout_x=130pxandroid:layout_y=232pxandroid:text=计算④其他显示textview显示包块标题在内的其他文本:TextViewandroid:id=@+id/titleandroid:layout_width=243pxandroid:layout_height=29pxandroid:text=@string/titleandroid:textSize=24spandroid:layout_x=36pxandroid:layout_y=32px/TextViewTextViewandroid:id=@+id/text1android:layout_width=wrap_contentandroid:layout_height=37pxandroid:text=@string/text1android:textSize=18spandroid:layout_x=40pxandroid:layout_y=156px/TextViewTextViewandroid:id=@+id/text2android:layout_width=wrap_contentandroid:layout_height=29pxandroid:text=@string/text2android:textSize=18spandroid:layout_x=40pxandroid:layout_y=102px/TextViewTextViewandroid:id=@+id/text3android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:text=cmandroid:textSize=18spandroid:layout_x=231pxandroid:layout_y=157px(2)源代码文件:EX03_11.java使用main.xml布局文件,为计算按钮(Button)注册事件监听,添加事件响应代码:publicclassEX03_11extendsActivity{privateEditTextet;privateRadioButtonrb1;privateRadioButtonrb2;/**Calledwhentheactivityisfirstcreated.*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);/*载入main.xmlLayout*/setContentView(R.layout.main);/*以findViewById()取得Button对象,并添加onClickListener*/Buttonb1=(Button)findViewById(R.id.button1);b1.setOnClickListener(newButton.OnClickListener(){publicvoidonClick(Viewv){/*取得输入的身高*/et=(EditText)findViewById(R.id.height);doubleheight=Double.parseDouble(et.getText().toString());/*取得选择的性别*/Stringsex=;rb1=(RadioButton)findViewById(R.id.sex1);rb2=(RadioButton)findViewById(R.id.sex2);if(rb1.isChecked()){sex=M;}else{sex=F;}/*new一个Intent对象,并指定class*/Intentintent=newIntent();intent.setClass(EX03_11.this,EX03_11_1.class);/*new一个Bundle对象,并将要传递的数据传入*/Bundlebundle=newBundle();bundle.putDouble(height,height);bundle.putString(sex,sex);/*将Bundle对象assign给Intent*/intent.putExtras(bundle);/*调用ActivityEX03_11_1*/startActivityForResult(intent,0);}});}/*覆盖onActivityResult()*/@OverrideprotectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){switch(resultCode){caseRESULT_OK:/*取得来自Activity2的数据,并显示于画面上*/Bundlebunde=data.getExtras();Stringsex=bunde.getString(sex);doubleheight=bunde.getDouble(height);et.setText(+height);if(sex.equals(M)){rb1.setChecked(true);}else{rb2.setChecked(true);}break;default:break;}}}2、第二个Activity(显示模块)(1)布局文件:myalyout.xml绝对布局,包括一个TextView和一个Button。①一个TextView用于显示测试者基本情况及计算标准体重的结果,其初始化代码:TextViewandroid:id=@+id/text1android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:textSize=20spandroid:layout_x=50pxandroid:layout_y=72px②一个Button用于回到上一个模块显示界面,其初始化代码如下:Buttonandroid:id=@+id/button1android:layout_width=100pxandroid:layout_height=48pxandroid:layout_x=110pxandroid:layout_y=180pxandroid:text=回上一页/Button(2)源代码文件:EX03_11_1.java①onCreate函数:使用myalyout.xml布局文件,获取intent,取得传入的数据信息,并将测试人的信息以及计算出的标准体重显示在textview中。实现程序如下:publicvoidonCreate(Bundles