android:
minSdkVersion="8"
android:
targetSdkVersion="18"/>
android:
allowBackup="true"
android:
icon="@drawable/ic_launcher"
android:
label="@string/app_name"
android:
theme="@style/AppTheme">
android:
name="com.example.activity_demo.MainActivity"
android:
label="@string/app_name">
name="android.intent.action.MAIN"/>
name="android.intent.category.LAUNCHER"/>
七、测试数据与运行结果及其分析:
安装Eclipse,并试验软件是否可用,测试通过,可以用来搭建工程。
八、实验总结和体会
这个实验的主要目的是搭建Android的开发环境,这是学习安卓的第一步,在搭建过程中有很多细节要注意,例如环境变量,还是挺考验细心程度的。
在升级Android版本的时候可能会遇到网络问题,需要在avdmanager中进行设置,详细步骤在XX中查阅。
实验室名称:
计算机实验室实验机器号:
实验分组:
无
实验时间:
2015.10.8指导教师:
时振涛
实验二:
Activity 生命周期程序设计
一、实验目的和要求
使学生深入了解Android组件的生命周期中各状态的变化关系。
通过程序设计,掌握Activity的三种生命周期:
全生命周期、可视生命周期和活动生命周期;每种生命周期中包含的不同的事件回调函数,以及它们的作用和调用顺序,深入理解Activity的生命周期过程。
二、实验设备
计算机(安装有Android的开发环境Eclipse)
三、实验内容
1.实现教材中的项目:
建立一个新的Android工程,工程名称:
Chp02_ActivityLife,包名称:
com.NewActivity,实现两个Activity:
NewActivity和SecondActivity。
通过观察Logcat中的记录,观察Activity生命周期中事件回调函数的执行过程,并根据下图,解释不同的事件回调函数在Activity的三种生命周期的作用如何。
2.建立一个新的Android工程,工程名称:
Chp02_ActivityLife2,包名称:
com.NewActivity,实现三个Activity:
MainActivity、SecondActivity和ThirdActivity。
MainActivity界面如下图所示,实现MainActivity到SecondActivity和ThirdActivity的跳转。
将AndroidManifest.XML文件中的多个activity都设置为android.intent.action.MAIN和android.intent.category.LAUNCHER,看看会有什么结果,是谁最先启动的?
如果在某个activity中不添加android.intent.action.MAIN再看看会有什么影响吗?
从中得出什么结论?
四、实验步骤和方法
1.建立新的Android工程。
2.通过在生命周期函数中添加“System.out.println”或“日志点Log.e”的方法进行调试
3.为了显示结果易于观察和分析,在LogCat设置过滤器
4.在程序运行过程,通过点击模拟器上的“返回键”和主键等,在Logcat中观察生命周期中事件回调函数的执行顺序及作用:
onSaveInstanceState()→onPause()→onStop()→onRestart()→onStart()→onResume()
5.按桌面键在Logcat中观察生命周期:
onPause()->onSaveInstanceState()->onStop();
6.记录实验结果并分析
五、实验数据记录
1.MainActivity.java
packagecom.sunwei.study;
publicclassMainActivityextendsAppCompatActivityimplementsView.OnClickListener{
@Override
protectedvoidonStop(){
super.onStop();
Log.d("TAG","Main-OnStop");
}
@Override
protectedvoidonDestroy(){
super.onDestroy();
Log.d("TAG","Main-onDestroy");
}
@Override
protectedvoidonStart(){
super.onStart();
Log.d("TAG","Main-onStart");
}
@Override
protectedvoidonPause(){
super.onPause();
Log.d("TAG","Main-onPause");
}
@Override
protectedvoidonRestart(){
super.onRestart();
Log.d("TAG","Main-onRestart");
}
}
2.SecondActivity.java
packagecom.sunwei.study;
publicclassSecondActivityextendsAppCompatActivity{
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
}
@Override
protectedvoidonStop(){
super.onStop();
Log.d("TAG","Second-OnStop");
}
@Override
protectedvoidonDestroy(){
super.onDestroy();
Log.d("TAG","Second-onDestroy");
}
@Override
protectedvoidonStart(){
super.onStart();
Log.d("TAG","Second-onStart");
}
@Override
protectedvoidonPause(){
super.onPause();
Log.d("TAG","Second-onPause");
}
@Override
protectedvoidonRestart(){
super.onRestart();
Log.d("TAG","Second-onRestart");
}
}
3.AndroidManifest.xml
xmlversion="1.0"encoding="utf-8"?
>
android="
package="com.sunwei.study">
android:
allowBackup="true"
android:
icon="@mipmap/ic_launcher"
android:
label="@string/app_name"
android:
theme="@style/AppTheme">
android:
name=".MainActivity"
android:
label="@string/app_name">
name="android.intent.action.MAIN"/>
name="android.intent.category.LAUNCHER"/>
android:
name=".SecondActivity"
android:
label="@string/title_activity_second">
android:
name=".ThirdActivity"
android:
label="@string/title_activity_third">
六、测试数据和实验结果及其分析
1.应用初始界面如下图所示。
点击secondActivity按钮控制台输出如下信息;
点击物理菜单的返回键输出如下信息:
按桌面键输出如下信息:
2.应用程序初始界面如下:
七、实验总结和体会
通过这个实验深刻体会到了Activity的生命周期和各个有关函数的执行顺序,只有掌握了这个才会在编写应用的时候应用自如。
另外通过对AndroidMainfest.xml文件中intent-filter属性的设置了解了这个属性对应用的重要性。
实验室名称:
计算机实验室实验机器号:
实验分组:
无
实验时间:
2015.10.19指导教师:
时振涛
实验三:
Intent、Activity应用
一、实验目的和要求
本次实验的目的是让大家熟悉Intent和Activity的使用。
了解Intent的组成、功能、解析机制和调用方法。
掌握Intent传递数据的方法。
二、实验原理
1.通过Intent实现Activity之间的跳转;
在Android系统中,应用程序一般都有多个Activity,Intent可以帮助实现不同Activity之间的切换和数据传递。
Activity的跳转启动的方式主要有两种,分为显示启动和隐式启动。
Activity之间信息传递最基本的实现方式是使用Intent,在使用Intent进行Activity之间的跳转时,通常有三种Intent跳转方式,即:
不带参数的跳转、带参数的跳转以及带返回值的跳转,也可以归纳为两种最常见的情形:
一种是获取子Activity返回值,另一种传递消息给子Activity。
2. 通过Bundle在Activity之间传递参数
三、实验设备:
计算机(安装有Android的开发环境Eclipse)
四、实验内容
1、建立一个新的Android工程,工程名称:
Chp02_IntentProject,Activity名称:
MainActivity,SecondActivity,MainActivity的界面如图a,实现:
1)当网络可用时提示“网络可用”,当网络不可用时,提示信息“网络不可用”,并跳转到网络设置界面,如图b。
2)第一个按钮通过Intent显式启动SecondActivity。
3)第二个按钮通过设置Intent的动作,即setAction(intent.ACTION_VIEW)打开XX网页;4)第三个按钮通过Intent隐式启动OtherActivity。
5)第四个按钮通过设置Intent的动作,即setAction(intent.ACTION_SENDTO)实现发送短信的功能。
2、SecondActivity的界面如图c,要求点击“XX”可以转入网页,下面显示的网址、邮箱和电话同样可以打开链接。
abc
实验代码见“实验数据记录”,并将其中“……”里的内容补充完整,将实验要求功能实现。
然后试着改变按钮监听方式,实现其他方法的监听方式,并将代码和结果附在实验内容里。
3、按照教材中的内容建立工程NeuChp02_IntentExchangeMessage,实现三个Activity,分别为MainActivity、SecondActivity和ThirdActivity,其中MainActivity为父Activity,获取SecondActivity的返回值,传递信息给ThirdActivity,实现不带参数的跳转、带参数的跳转以及带返回值的跳转。
五、实验步骤和方法
1.根据实验要求建立工程
2.按照实验内容编写代码
3.运行程序并调试
4.改变程序中组件的属性观察它们的变化
5.记录实验结果并分析
六、实验数据记录
源代码:
1.布局文件:
android="
xmlns:
tools="
android:
layout_width="match_parent"
android:
layout_height="match_parent"
android:
orientation="vertical"
tools:
context="com.example.testhello.MyMainActivity">
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
text="@string/app_name"/>
2.MyMainActivity代码
publicclassMainActivityextendsAppCompatActivityimplementsView.OnClickListener{
privateTextViewtextView;
privateButtonbutton1;
privateButtonbutton2;
privateButtonbutton3;
privateButtonbutton4;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView=(TextView)findViewById(R.id.textView);
button1=(Button)findViewById(R.id.button1);
button2=(Button)findViewById(R.id.button2);
button3=(Button)findViewById(R.id.button3);
button4=(Button)findViewById(R.id.button4);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
button4.setOnClickListener(this);
ConnectivityManagerconnectivityManager=(ConnectivityManager)getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo