Android实验报告.docx
《Android实验报告.docx》由会员分享,可在线阅读,更多相关《Android实验报告.docx(42页珍藏版)》请在冰点文库上搜索。
Android实验报告
Android实验报告
专业:
计算机科学与技术
班级:
学号:
姓名:
武易
2016年11月28日
实验一Activity生命周期
一、实验目的
Android生命周期是从程序启动到程序终止的过程。
通过本次实验深入理解Android系统管理生命周期的必要性,并以Activity为例说明Android系统是如何管理程序组件的生命周期。
二、实验设备
1、硬件设备系统类型:
Win7版本32位,处理器:
Intel(R)Core(TM)i3-2350MCPU@2.30GHz2.30GHz安装内存(RAM):
8.00GB
2、软件设备Win7操作系统、Eclipse、JDK、AndroidSDK、ADT
三、实验内容
1、实验要求
观察Activity的生命周期。
2、详细设计
publicclassMainActivityextendsActionBarActivity{
privatestaticStringTAG="LIFECYCLE";
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
Log.i(TAG,"
(1)onCreate()");
button.setOnClickListener(newView.OnClickListener(){
publicvoidonClick(Viewview){
finish();
}
});
}
@Override
publicvoidonStart(){
super.onStart();
Log.i(TAG,"
(2)onStart()");
}
@Override
publicvoidonRestoreInstanceState(BundlesavedInstanceState){
super.onRestoreInstanceState(savedInstanceState);
Log.i(TAG,"(3)onRestoreInstanceState()");
}
@Override
publicvoidonResume(){
super.onResume();
Log.i(TAG,"(4)onResume()");
}
@Override
publicvoidonSaveInstanceState(BundlesavedInstanceState){
super.onSaveInstanceState(savedInstanceState);
Log.i(TAG,"(5)onSaveInstanceState()");
}
@Override
publicvoidonRestart(){
super.onRestart();
Log.i(TAG,"(6)onRestart()");
}
@Override
publicvoidonPause(){
super.onPause();
Log.i(TAG,"(7)onPause()");
}
@Override
publicvoidonStop(){
super.onStop();
Log.i(TAG,"(8)onStop()");
}
@Override
publicvoidonDestroy(){
super.onDestroy();
Log.i(TAG,"(9)onDestroy()");
}
/*@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
}*/
@Override
publicbooleanonCreateOptionsMenu(Menumenu){
//Inflatethemenu;thisaddsitemstotheactionbarifitispresent.
returntrue;
}
@Override
publicbooleanonOptionsItemSelected(MenuItemitem){
//Handleactionbaritemclickshere.Theactionbarwill
//automaticallyhandleclicksontheHome/Upbutton,solong
//asyouspecifyaparentactivityinAndroidManifest.xml.
intid=item.getItemId();
returntrue;
}
returnsuper.onOptionsItemSelected(item);
}
}
3、结果显示
实验二用户界面控件
一、实验目的
用户界面是应用程序开发的重要组成部分,决定了应用程序是否美观、易用。
通过本次实验熟悉Android用户界面的基本开发方法,了解在Android界面开发过程中常见的界面控件的使用方法。
二、实验设备
1、硬件设备系统类型:
Win7版本32位,处理器:
Intel(R)Core(TM)i3-2350MCPU@2.30GHz2.30GHz安装内存(RAM):
8.00GB
2、软件设备Win7操作系统、Eclipse、JDK、AndroidSDK、ADT
三、实验内容
1、实验要求
设计一个自我介绍的界面。
2、详细设计
publicclassMainActivityextendsActionBarActivity{
Stringname="";
Stringsex="";
Stringhobby="";
Stringage="";
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
Show();
Button.OnClickListenerbuttonListener=newButton.OnClickListener(){
@Override
publicvoidonClick(Viewv){
//TODOAuto-generatedmethodstub
name="";
age="";
name=editText1.getText().toString();
age=spinner.getSelectedItem().toString();
editText2.setText("大家好,我是"+name+",性别:
"+sex+",爱好:
"+hobby+"年级:
"+age);
return;
}
};
button.setOnClickListener(buttonListener);
CheckBox.OnClickListenercheckboxListener=newCheckBox.OnClickListener(){
@Override
publicvoidonClick(Viewv){
//TODOAuto-generatedmethodstub
hobby="";
if(checkBox1.isChecked())
if(checkBox2.isChecked())
if(checkBox3.isChecked())
return;
}
};
checkBox1.setOnClickListener(checkboxListener);
checkBox2.setOnClickListener(checkboxListener);
checkBox3.setOnClickListener(checkboxListener);
RadioButton.OnClickListenerraidoButtonListener=newRadioButton.OnClickListener(){
@Override
publicvoidonClick(Viewv){
//TODOAuto-generatedmethodstub
switch(v.getId()){
if(radio1.isChecked())
return;
if(radio2.isChecked())
return;
}
}
};
radio1.setOnClickListener(raidoButtonListener);
radio2.setOnClickListener(raidoButtonListener);
}
publicvoidShow(){
Listlist=newArrayList();
list.add("大一年级");
list.add("大二年级");
list.add("大三年级");
list.add("大四年级");
ArrayAdapteradapter=newArrayAdapter(this,
spinner.setAdapter(adapter);
}
}
3、结果显示
实验三用户界面布局
一、实验目的
界面布局是用户界面结构的描述,定义界面中所有的元素、结构和相互关系,通过本次实验了解在Android界面开发过程中常见的界面布局的使用方法。
二、实验设备
1、硬件设备系统类型:
Win7版本32位,处理器:
Intel(R)Core(TM)i3-2350MCPU@2.30GHz2.30GHz安装内存(RAM):
8.00GB
2、软件设备Win7操作系统、Eclipse、JDK、AndroidSDK、ADT
三、实验内容
1、实验要求
用Tab标签页实现多个分页之间的切换。
2、详细设计
MainActivity代码:
@SuppressWarnings("deprecation")
publicclassTabDemo2ActivityextendsTabActivity{
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
TabHosttabHost=getTabHost();
tabHost.addTab(tabHost.newTabSpec("TAB1").setIndicator("线性布局").setContent(newIntent().setClass(this,Tab1Activity.class)));
tabHost.addTab(tabHost.newTabSpec("TAB2").setIndicator("绝对布局").setContent(newIntent().setClass(this,Tab2Activity.class)));
tabHost.addTab(tabHost.newTabSpec("TAB3").setIndicator("相对布局").setContent(newIntent().setClass(this,Tab3Activity.class)));
}
}
Table1代码:
publicclassTab1ActivityextendsActivity{
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
}
};
Table2代码:
publicclassTab2ActivityextendsActivity{
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
}
}
Table3代码:
publicclassTab3ActivityextendsActivity{
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
}
}
3、结果显示
实验四广播消息
一、实验目的
Intent是一种消息传播机制,用于组件之间数据交换和发送广播消息。
通过本次实验了解Android系统的组件通信原理,掌握利用Intent启动其他组件的方法,以及利用Intent获取信息和发送广播消息的方法。
二、实验设备
1、硬件设备系统类型:
Win7版本32位,处理器:
Intel(R)Core(TM)i3-2350MCPU@2.30GHz2.30GHz安装内存(RAM):
8.00GB
2、软件设备Win7操作系统、Eclipse、JDK、AndroidSDK、ADT
三、实验内容
1、实验要求
实现具有“登录”按钮的主界面,点击登录按钮后打开一个新的Activity,并且将主界面的用户名传递过来,点击发送广播按钮发送广播。
2、详细设计
MainActivity代码:
publicclassMainActivityextendsActionBarActivity{
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
finalIntentintent=newIntent(this,NewActivity.class);
Button.OnClickListenerLoginListener=newButton.OnClickListener(){
@Override
publicvoidonClick(Viewi){
//TODOAuto-generatedmethodstub
switch(i.getId()){
if(LoginCheck()){
intent.putExtra("user",Name.getText().toString());
startActivity(intent);
return;
}
else{
Toast.makeText(getApplicationContext(),"用户名或密码错误",Toast.LENGTH_SHORT).show();
return;
}
finish();
}
}
};
Login.setOnClickListener(LoginListener);
Quit.setOnClickListener(LoginListener);
}
publicbooleanLoginCheck(){
if(!
Name.getText().toString().equals("admin")){
returnfalse;
}
elseif(!
Password.getText().toString().equals("000")){
returnfalse;
}
else
returntrue;
}
}
MyBroadcastReceiver代码:
publicclassMyBroadcastReceiverextendsBroadcastReceiver{
@Override
publicvoidonReceive(Contextarg0,Intentarg1){
//TODOAuto-generatedmethodstub
Toast.makeText(arg0,arg1.getStringExtra("key"),Toast.LENGTH_SHORT).show();
}
}
NewActivity代码:
publicclassNewActivityextendsActionBarActivity{
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
Intentintent=getIntent();
welcome.setText("欢迎你:
"+intent.getStringExtra("user"));
Button.OnClickListenerbuttonListener=newButton.OnClickListener(){
@Override
publicvoidonClick(Viewarg0){
//TODOAuto-generatedmethodstub
intent2.putExtra("key",editText.getText().toString());
sendBroadcast(intent2);
}
};
button.setOnClickListener(buttonListener);
}
}
3、结果显示
实验五后台服务
一、实验目的
Service是Android系统的服务组件,适用于开发没有用户界面且长时间在后台运行的功能。
通过本次试验了解后台服务的基本原理,掌握本地服务的使用方法。
二、实验设备
1、硬件设备系统类型:
Win7版本32位,处理器:
Intel(R)Core(TM)i3-2350MCPU@2.30GHz2.30GHz安装内存(RAM):
8.00GB
2、软件设备Win7操作系统、Eclipse、JDK、AndroidSDK、ADT
三、实验内容
1、实验要求
创建一个Service服务用来完成简单的数学运算。
2、详细设计
MainActivity代码:
publicclassMainActivityextendsActionBarActivity{
privateMathServicemathService;
privatebooleanisBound=false;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
Begin.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewarg0){
//TODOAuto-generatedmethodstub
if(!
isBound){
finalIntentserviceIntent=newIntent(MainActivity.this,MathService.class);
bindService(serviceIntent,mConnection,Context.BIND_AUTO_CREATE);
isBound=true;
}
}
});
Do.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewarg0){
//TODOAuto-generatedmethodstub
if(mathService==null){
textView.setText("未绑定服务");
return;
}
inta=Integer.parseInt(One.getText().toString());
intb=Integer.parseInt(Two.getText().toString());
ints=mathService.Compare(a,b);
textView.setText("较大的数为:
"+s);
}
});
Stop.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewarg0){
if(isBound){
isBound=false;
unbindService(mConnection);
mathService=null;
}
}
});
Quit.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewarg0){
finish();
}
});
}
privateServiceConnectionmConnection=newServiceConnection(){
@Override
publicvoidonServiceConnected(ComponentNamename,IBinderservice){
mathService=((MathService.LocalBinder)service).getService();
}
@Override
publicvoidonServiceDisconnected(Compone