最新Android实验报告.doc
精品资料Android实验报告.Android实验报告 专业:计算机科学与技术班级:13419011学号:1341901124姓名:武易2016年11月28日实验一 Activity 生命周期一、 实验目的Android 生命周期是从程序启动到程序终止的过程。通过本次实验深入理 解 Android 系统管理生命周期的必要性,并以 Activity 为例说明 Android 系 统是如何管理程序组件的生命周期。二、实验设备1、硬件设备 系统类型:Win7 版本 32 位,处理器:Intel(R)Core(TM)i3-2350M CPU 2.30GHz 2.30GHz 安装内存(RAM):8.00GB2、软件设备 Win7 操作系统、Eclipse、JDK、Android SDK、ADT三、实验内容1、实验要求观察 Activity的生命周期。2、详细设计package com.example.activitylifecycle;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;public class MainActivity extends ActionBarActivity private static String TAG="LIFECYCLE"Overridepublic void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Log.i(TAG,"(1) onCreate()");Button button=(Button)findViewById(R.id.button1);button.setOnClickListener(new View.OnClickListener()public void onClick(View view)finish(););Overridepublic void onStart()super.onStart();Log.i(TAG,"(2) onStart()");Overridepublic void onRestoreInstanceState(Bundle savedInstanceState)super.onRestoreInstanceState(savedInstanceState);Log.i(TAG,"(3) onRestoreInstanceState()");Overridepublic void onResume()super.onResume();Log.i(TAG,"(4) onResume()");Overridepublic void onSaveInstanceState(Bundle savedInstanceState)super.onSaveInstanceState(savedInstanceState);Log.i(TAG,"(5) onSaveInstanceState()");Overridepublic void onRestart()super.onRestart();Log.i(TAG,"(6) onRestart()");Overridepublic void onPause()super.onPause();Log.i(TAG,"(7) onPause()");Overridepublic void onStop()super.onStop();Log.i(TAG,"(8) onStop()");Overridepublic void onDestroy()super.onDestroy();Log.i(TAG,"(9) onDestroy()"); /*Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); */ Override public 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; Override public boolean onOptionsItemSelected(MenuItem item) / Handle action bar item clicks here. The action bar will / automatically handle clicks on the Home/Up button, so long / as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id = R.id.action_settings) return true; return super.onOptionsItemSelected(item); 3、结果显示实验二 用户界面控件一、 实验目的用户界面是应用程序开发的重要组成部分,决定了应用程序是否美观、易用。通过本次实验熟悉 Android 用户界面的基本开发方法,了解在 Android 界面开发过程中常见的界面控件的使用方法。二、实验设备1、硬件设备 系统类型:Win7 版本 32 位,处理器:Intel(R)Core(TM)i3-2350M CPU 2.30GHz 2.30GHz 安装内存(RAM):8.00GB2、软件设备 Win7 操作系统、Eclipse、JDK、Android SDK、ADT三、实验内容 1、实验要求 设计一个自我介绍的界面。 2、详细设计package com.example.text5;import java.util.ArrayList;import java.util.List;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.view.View;import android.widget.CheckBox;import android.widget.EditText;import android.widget.ArrayAdapter;import android.widget.RadioButton;import android.widget.Spinner;import android.widget.Button;public class MainActivity extends ActionBarActivity String name="" String sex="" String hobby="" String age="" Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Show(); final CheckBox checkBox1=(CheckBox)findViewById(R.id.checkBox1); final CheckBox checkBox2=(CheckBox)findViewById(R.id.checkBox2); final CheckBox checkBox3=(CheckBox)findViewById(R.id.checkBox3); final EditText editText1=(EditText)findViewById(R.id.editText1); final EditText editText2=(EditText)findViewById(R.id.editText2); final RadioButton radio1=(RadioButton)findViewById(R.id.radio1); final RadioButton radio2=(RadioButton)findViewById(R.id.radio2); final Button button=(Button)findViewById(R.id.button1); final Spinner spinner=(Spinner)findViewById(R.id.spinner1); Button.OnClickListener buttonListener=new Button.OnClickListener() Override public void onClick(View v) / TODO Auto-generated method stub name="" age="" name=editText1.getText().toString(); age=spinner.getSelectedItem().toString(); editText2.setText("大家好,我是"+name+",性别:"+sex+",爱好:"+hobby+"年级:"+age); return; ; button.setOnClickListener(buttonListener); CheckBox.OnClickListener checkboxListener=new CheckBox.OnClickListener() Overridepublic void onClick(View v) / TODO Auto-generated method stubhobby=""if(checkBox1.isChecked()MainActivity.this.hobby+="足球,"if(checkBox2.isChecked()MainActivity.this.hobby+="篮球,"if(checkBox3.isChecked()MainActivity.this.hobby+="乒乓球,"return; ; checkBox1.setOnClickListener(checkboxListener); checkBox2.setOnClickListener(checkboxListener); checkBox3.setOnClickListener(checkboxListener); RadioButton.OnClickListener raidoButtonListener=new RadioButton.OnClickListener()Overridepublic void onClick(View v) / TODO Auto-generated method stubswitch(v.getId()case R.id.radio1:if(radio1.isChecked()MainActivity.this.sex="男"return;case R.id.radio2:if(radio2.isChecked()MainActivity.this.sex="女"return; ; radio1.setOnClickListener(raidoButtonListener); radio2.setOnClickListener(raidoButtonListener); public void Show() Spinner spinner=(Spinner)findViewById(R.id.spinner1); List<String>list=new ArrayList<String>(); list.add("大一年级"); list.add("大二年级"); list.add("大三年级"); list.add("大四年级"); ArrayAdapter<String>adapter=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,list); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); 3、结果显示实验三 用户界面布局一、 实验目的界面布局是用户界面结构的描述,定义界面中所有的元素、结构和相互关系,通过本次实验了解在 Android 界面开发过程中常见的界面布局的使用方法。二、实验设备 1、硬件设备 系统类型:Win7 版本 32 位,处理器:Intel(R)Core(TM)i3-2350M CPU 2.30GHz 2.30GHz 安装内存(RAM):8.00GB2、软件设备 Win7 操作系统、Eclipse、JDK、Android SDK、ADT三、实验内容 1、实验要求 用 Tab 标签页实现多个分页之间的切换。 2、详细设计MainActivity代码:package com.example.tabdemo2;import android.os.Bundle;import android.app.TabActivity;import android.content.Intent;import android.widget.TabHost;SuppressWarnings("deprecation")public class TabDemo2Activity extends TabActivity Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); TabHost tabHost=getTabHost(); tabHost.addTab(tabHost.newTabSpec("TAB1").setIndicator("线性布局").setContent(new Intent().setClass(this, Tab1Activity.class); tabHost.addTab(tabHost.newTabSpec("TAB2").setIndicator("绝对布局").setContent(new Intent().setClass(this, Tab2Activity.class); tabHost.addTab(tabHost.newTabSpec("TAB3").setIndicator("相对布局").setContent(new Intent().setClass(this, Tab3Activity.class); Table1代码:package com.example.tabdemo2;import android.app.Activity;import android.os.Bundle;public class Tab1Activity extends ActivityOverridepublic void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.tab1);;Table2代码:package com.example.tabdemo2;import android.app.Activity;import android.os.Bundle;public class Tab2Activity extends ActivityOverridepublic void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.tab2);Table3代码:package com.example.tabdemo2;import android.app.Activity;import android.os.Bundle;public class Tab3Activity extends ActivityOverridepublic void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.tab3);3、结果显示实验四 广播消息一、 实验目的Intent 是一种消息传播机制,用于组件之间数据交换和发送广播消息。通 过本次实验了解 Android 系统的组件通信原理,掌握利用 Intent 启动其他组 件的方法,以及利用 Intent 获取信息和发送广播消息的方法。二、实验设备 1、硬件设备 系统类型:Win7 版本 32 位,处理器:Intel(R)Core(TM)i3-2350M CPU 2.30GHz 2.30GHz 安装内存(RAM):8.00GB2、软件设备 Win7 操作系统、Eclipse、JDK、Android SDK、ADT三、实验内容 1、实验要求 实现具有“登录”按钮的主界面,点击登录按钮后打开一个新的 Activity, 并且将主界面的用户名传递过来,点击发送广播按钮发送广播。 2、详细设计MainActivity代码:package com.example.text6;import android.support.v7.app.ActionBarActivity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends ActionBarActivity Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final Intent intent=new Intent(this,NewActivity.class); final EditText Name=(EditText)findViewById(R.id.editText1); Button Login=(Button)findViewById(R.id.button1); Button Quit=(Button)findViewById(R.id.button2); Button.OnClickListener LoginListener=new Button.OnClickListener()Overridepublic void onClick(View i) / TODO Auto-generated method stubswitch(i.getId()case R.id.button1:if(LoginCheck()intent.putExtra("user", Name.getText().toString();startActivity(intent);return;elseToast.makeText(getApplicationContext(), "用户名或密码错误", Toast.LENGTH_SHORT).show();return;case R.id.button2:finish(); ; Login.setOnClickListener(LoginListener); Quit.setOnClickListener(LoginListener); public boolean LoginCheck() EditText Name=(EditText)findViewById(R.id.editText1); EditText Password=(EditText)findViewById(R.id.editText2); if(!Name.getText().toString().equals("admin") return false; else if(!Password.getText().toString().equals("000") return false; else return true; MyBroadcastReceiver代码:package com.example.text6;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.widget.Toast;public class MyBroadcastReceiver extends BroadcastReceiverOverridepublic void onReceive(Context arg0, Intent arg1) / TODO Auto-generated method stubToast.makeText(arg0, arg1.getStringExtra("key"), Toast.LENGTH_SHORT).show();NewActivity代码:package com.example.text6;import android.support.v7.app.ActionBarActivity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class NewActivity extends ActionBarActivity Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_new);final TextView welcome=(TextView)findViewById(R.id.TextView1);final EditText editText=(EditText)findViewById(R.id.editText1);Button button=(Button)findViewById(R.id.button1);Intent intent=getIntent();welcome.setText("欢迎你:"+intent.getStringExtra("user");Button.OnClickListener buttonListener=new Button.OnClickListener()Overridepublic void onClick(View arg0) / TODO Auto-generated method stubIntent intent2=new Intent("com.example.text6");intent2.putExtra("key", editText.getText().toString();sendBroadcast(intent2);button.setOnClickListener(buttonListener);3、结果显示 实验五 后台服务一、 实验目的Service 是 Android 系统的服务组件,适用于开发没有用户界面且长时间 在后台运行的功能。通过本次试验了解后台服务的基本原理,掌握本地服务的使用方法。二、实验设备 1、硬件设备 系统类型:Win7 版本 32 位,处理器:Intel(R)Core(TM)i3-2350M CPU 2.30GHz 2.30GHz 安装内存(RAM):8.00GB2、软件设备 Win7 操作系统、Eclipse、JDK、Android SDK、ADT 三、实验内容 1、实验要求 创建一个 Service 服务用来完成简单的数学运算。 2、详细设计MainActivity代码:package com.example.text7;import android.support.v7.app.ActionBarActivity;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;import android.content.Context;import android.content.Intent;import android.content.ServiceConnection;import android.os.Bundle;import android.os.IBinder;import android.content.ComponentName;public class MainActivity extends ActionBarActivity private MathService mathService;private boolean isBound=false; Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final EditText One=(EditText)findViewById(R.id.editText1); final EditText Two=(EditText)findViewById(R.id.editText2); Button Begin=(Button)findViewById(R.id.button1); Button Do=(Button)findViewById(R.id.button2); Button Stop=(Button)findViewById(R.id.button3); Button Quit=(Button)findViewById(R.id.button4); final TextView textView=(TextView)findViewById(R.id.textView3); Begin.setOnClickListener(new View.OnClickListener() Overridepublic void onClick(View arg0) / TODO Auto-generated method stubif(!isBound)final Intent serviceIntent=new Intent(MainActivity.this,MathService.class);bindService(serviceIntent,mConnection,Context.BIND_AUTO_CREATE);isBound=true;); Do.setOnClickListener(new View.OnClickListener() Overridepublic void onCli