Android应用程序开发实验报告学号:131006105学生姓名: 冯会会指导教师:齐兵辉提交时间:2015.11.10目录第一章系统分析与设计 (3)1.1系统的可行性分析 (3)1.2系统的需求分析 (3)第二章系统详细设计 (3)2.1 ACTIVITY的详细设计 (3)2.2 XML文件的详细设计 (14)第三章测试运行及总结 (20)3.1界面截图 (20)3.2运行界面截图 (21)3.3运行结果截图 (22)3.4总结 (22)第一章系统分析与设计1.1系统的可行性分析可行性研究是为了弄清楚系统开发的项目是不是可以实现和值得进行研究的过程,实际上是一次大大简化系统分析和系统设计的过程,所以,进行可执行性的分析是非常必要的,也是很重要的,经过最初的设计目标和进行的实时调查得出以下四点的可行性分析:(1)技术可行性:Eclipse + Android ADT的技术已经较为成熟,通过SUN 公司(现被ORCEL公司收购)推出的跨平台、动态的JAVA语言进行开发。
(2)运行可行性:该系统需要Android虚拟机环境,Eclipse中安装ADT,DDMS等Google Android相关插件。
其运行环境已经相当稳定,它功能丰富,包括了完备的Android程序的编码、调试、测试和发布功能,其中支持所有Android应用开发相关技术,包括SQLite,Skia,3D制作,Android XML,能够很好的发布Android的应用程序APK包。
(3)法律可行性:因为是自主开发设计,所以不会构成侵权,在法律上是可行的。
通过以上的可行性分析,将采用Eclipse+Android ADT + DDMS技术,运用JAVA语言进行系统的开发。
1.2 系统的需求分析根据分析需求,这个系统必须实现以下的功能:(1) 实现简单的数字计算功能。
作为计算器,其核心就是加减乘除。
(2) 能够在手机里面以良好的界面。
第二章系统详细设计2.1 activity的详细设计package .example.counter;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class MainActivity extends Activity {private TextView textView1 = null;private Button buttonzone = null;private Button button1 = null;private Button button2 = null;private Button button3 = null;private Button button4 = null;private Button button5 = null;private Button button6 = null;private Button button7 = null;private Button button8 = null;private Button button9 = null;private Button buttonadd = null;private Button buttonred = null;private Button buttondiv = null;private Button buttonmul = null;private Button buttonpint = null;private Button buttonbai = null;private Button buttongen = null;private Button buttonequal = null;private String x="";private String y="";private double r1=0;private double r2=0;private int i=0;Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);setContentView(yout.activity_main);textView1 = (TextView)findViewById(R.id.textView1);button1 = (Button)findViewById(R.id.button1);button2 = (Button)findViewById(R.id.button2);button3 = (Button)findViewById(R.id.button3);button4 = (Button)findViewById(R.id.button4);button5 = (Button)findViewById(R.id.button5);button6 = (Button)findViewById(R.id.button6);button7 = (Button)findViewById(R.id.button7);button8 = (Button)findViewById(R.id.button8);button9 = (Button)findViewById(R.id.button9);buttonzone = (Button)findViewById(R.id.button0);buttonadd = (Button)findViewById(R.id.buttonadd);buttonred = (Button)findViewById(R.id.buttonred);buttonmul = (Button)findViewById(R.id.buttonmul);buttondiv = (Button)findViewById(R.id.buttondiv);buttonbai = (Button)findViewById(R.id.buttonbai);buttongen = (Button)findViewById(R.id.buttongen);buttonequal = (Button)findViewById(R.id.buttonequal);buttonpint = (Button)findViewById(R.id.buttonpoint);button1.setOnClickListener(new OnClickListener() {Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubx=x+"1";y=y+"1";textView1.setText(y);}});button2.setOnClickListener(new OnClickListener() {Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubx=x+"2";y=y+"2";textView1.setText(y);}});button3.setOnClickListener(new OnClickListener() {Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubx=x+"3";y=y+"3";textView1.setText(y);}});button4.setOnClickListener(new OnClickListener() {Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubx=x+"4";y=y+"4";textView1.setText(y);}});button5.setOnClickListener(new OnClickListener() {Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubx=x+"5";y=y+"5";textView1.setText(y);}});button6.setOnClickListener(new OnClickListener() {Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubx=x+"6";y=y+"6";textView1.setText(y);}});button7.setOnClickListener(new OnClickListener() {Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubx=x+"7";y=y+"7";textView1.setText(y);}});button8.setOnClickListener(new OnClickListener() {Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubx=x+"8";y=y+"8";textView1.setText(y);}});button9.setOnClickListener(new OnClickListener() {Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubx=x+"9";y=y+"9";textView1.setText(y);}});buttonzone.setOnClickListener(new OnClickListener() {Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubx=x+"0";y=y+"0";textView1.setText(y);}});buttonpint.setOnClickListener(new OnClickListener() {Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubif(x==""){x=0+"."+"";y=0+"."+"";}else {x=x+".";y=y+".";textView1.setText(y);}}});buttonequal.setOnClickListener(new OnClickListener() {Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubif(x!=""){r2=Double.parseDouble(x);x="";switch(i){case 0:textView1.setText(0+"");break;case 1:textView1.setText((r1+r2)+"");break;case 2:textView1.setText((r1-r2)+"");break;case 3:textView1.setText((r1*r2)+"");break;case 4:textView1.setText((r1/r2)+"");break;case 5:textView1.setText((r1%r2)+"");break;}}else{textView1.setText(0+"");x="";y="";}r1=0;r2=0;i=0;x="";y="";}});buttonadd.setOnClickListener(new OnClickListener() {Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubif(x!=""){r1=Double.parseDouble(x);x="";y=y+"+";textView1.setText(y);i=1;}else {textView1.setText(0+"");}}});buttonred.setOnClickListener(new OnClickListener() {Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubif(x!=""){r1=Double.parseDouble(x);x="";y=y+"-";textView1.setText(y);i=2;}else {textView1.setText(0+"");}}});buttonmul.setOnClickListener(new OnClickListener() {Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubif(x!=""){r1=Double.parseDouble(x);x="";y=y+"*";textView1.setText(y);i=3;}else {textView1.setText(0+"");}}});buttondiv.setOnClickListener(new OnClickListener() {Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubif(x!=""){r1=Double.parseDouble(x);x="";y=y+"/";textView1.setText(y);i=4;}else {textView1.setText(0+"");}}});buttonbai.setOnClickListener(new OnClickListener() { Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubif(x!=""){r1=Double.parseDouble(x);x="";y=y+"%";textView1.setText(y);i=5;}else {textView1.setText(0+"");}}});buttongen.setOnClickListener(new OnClickListener() {Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubif(x!=""){y="1/"+x;textView1.setText(y);r1=1/(Double.parseDouble(x));x=r1+"";}else {textView1.setText(0+"");}}});}Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}2.2 xml文件的详细设计<GridLayout xmlns:android="schemas.android./apk/res/android"xmlns:tools="schemas.android./tools"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_gravity="center"android:columnCount="5"android:rowCount="5"tools:context=".MainActivity"><TextViewandroid:id="+id/textView1"android:layout_width="230dp"android:layout_height="30dp"android:layout_column="0"android:layout_columnSpan="5"android:layout_row="0"android:gravity="right"android:text="string/result"android:textSize="25sp"/><Buttonandroid:id="+id/button7"style="?android:attr/buttonStyleSmall"android:layout_column="0"android:layout_gravity="left|top"android:layout_row="1"android:text="string/seleven"/><Buttonandroid:id="+id/button8"style="?android:attr/buttonStyleSmall"android:layout_column="1"android:layout_gravity="left|top"android:layout_row="1"android:text="string/eight"/><Buttonandroid:id="+id/button9"style="?android:attr/buttonStyleSmall"android:layout_column="2"android:layout_gravity="left|top"android:layout_row="1"android:text="string/nine"/><Buttonandroid:id="+id/buttondiv"style="?android:attr/buttonStyleSmall"android:layout_column="3"android:layout_gravity="left|top"android:layout_row="1"android:text="string/div"/><Buttonandroid:id="+id/buttonbai"style="?android:attr/buttonStyleSmall"android:layout_column="4"android:layout_gravity="left|top"android:layout_row="1"android:text="string/bai"/><Buttonandroid:id="+id/button4"style="?android:attr/buttonStyleSmall"android:layout_column="0"android:layout_gravity="left|top"android:layout_row="2"android:text="string/four"/><Buttonandroid:id="+id/button5"style="?android:attr/buttonStyleSmall"android:layout_column="1"android:layout_gravity="left|top"android:layout_row="2"android:text="string/five"/><Buttonandroid:id="+id/button6"style="?android:attr/buttonStyleSmall"android:layout_column="2"android:layout_gravity="left|top"android:layout_row="2"android:text="string/six"/><Buttonandroid:id="+id/buttonmul"style="?android:attr/buttonStyleSmall"android:layout_column="3"android:layout_gravity="left|top"android:layout_row="2"android:text="string/mul"/><Buttonandroid:id="+id/buttongen"style="?android:attr/buttonStyleSmall"android:layout_column="4"android:layout_gravity="left|top"android:layout_row="2"android:text="string/gen"/><Buttonandroid:id="+id/button1"style="?android:attr/buttonStyleSmall"android:layout_column="0"android:layout_gravity="left|top"android:layout_row="3"android:text="string/one"/><Buttonandroid:id="+id/button2"style="?android:attr/buttonStyleSmall"android:layout_column="1"android:layout_gravity="left|top"android:layout_row="3"android:text="string/two"/><Buttonandroid:id="+id/button3"style="?android:attr/buttonStyleSmall"android:layout_column="2"android:layout_gravity="left|top"android:layout_row="3"android:text="string/three"/><Buttonandroid:id="+id/buttonred"style="?android:attr/buttonStyleSmall"android:layout_column="3"android:layout_gravity="left|top"android:layout_row="3"android:text="string/red"/><Buttonandroid:id="+id/buttonequal"style="?android:attr/buttonStyleSmall"android:layout_width="50dp"android:layout_column="4"android:layout_gravity="fill_vertical"android:layout_row="3"android:layout_rowSpan="2"android:text="string/equal"/><Buttonandroid:id="+id/button0"style="?android:attr/buttonStyleSmall"android:layout_column="0"android:layout_gravity="fill"android:layout_row="4"android:layout_columnSpan="2"android:text="string/zone"/><Buttonandroid:id="+id/buttonpoint"style="?android:attr/buttonStyleSmall"android:layout_column="2"android:layout_gravity="left|top"android:layout_row="4"android:text="string/point"/><Buttonandroid:id="+id/buttonadd"style="?android:attr/buttonStyleSmall"android:layout_column="3"android:layout_gravity="left|top"android:layout_row="4"android:text="string/add"/> </GridLayout>第三章测试运行及总结3.1 界面截图3.4 总结这次课程设计虽然很简单但是需要注意的地方很多,比如ID的声明,经常由于ID的问题出现程序出现错误。