移动应用程序设计基础——Android环境构建与Activity生命周期

《移动应用程序设计基础》实 验 报 告(一)

 

实验名称:

Android环境构建与Activity生命周期

所使用的工具软件及环境: 

JDK1.8,Android Studio

 

(一) 

 

一、实验目的:

安装智能手机开发相关软件平台,并在此基础上测试Activity的生命周期过程。

  1. 完成智能手机开发平台安装、以及相关配置;
  2. 并实现Hello World;
  3. 添加Log日志,通过Log日志验证Activity生命周期中的7个方法执行过程;
  4. 了解项目的基本文件目录结构,了解Activity周期中的4种状态。

二、实验内容:

  1. 安装JAVA JDK
  2. 安装Android Studio,熟悉AS的基本操作,改变AS的字体,显示方式;截图和文字说明。
  3. 建立新项目,实现Hello World。说明各个文件的作用,以及各个关键语句的作用或含义,给出程序的运行结果。
  4. 设置生命周期的Log日志,分别执行相关操作
  • 在MainActivity中复写onCreate 、onStart、onResume 、onPause 、onStop 、onDestroy 和onRestart;
  • 分别在各个方法中添加日志监视语句,例如:Log.e(“ActivityLife”, "onCreate");
  • 分别执行
    1. 打开程序,在LogCat的输出日志中检查输出情况,执行顺序是否为onCreate()onStart()onResume()
    2. 按下back键,在LogCat的输出日志中检查输出情况,执行顺序是否为onPause()、onStop()、onDestory();
    3. 按下home键,在LogCat的输出日志中检查输出情况,执行顺序是否为onPause()、onStop();
    4. 再启动HelloWorld,在LogCat的输出日志中检查输出情况,执行顺序是否为onRestart()、onStart()、onResume();

 三、源代码

//activity_main.xml

  <?xml version="1.0" encoding="utf-8"?>

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/apk/res-auto"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    tools:context=".MainActivity">



    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="Hello World!"

        app:layout_constraintBottom_toBottomOf="parent"

        app:layout_constraintLeft_toLeftOf="parent"

        app:layout_constraintRight_toRightOf="parent"

        app:layout_constraintTop_toTopOf="parent" />



</androidx.constraintlayout.widget.ConstraintLayout>
//MainActivity.java 

package com.example.helloworld;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;


public class MainActivity extends Activity {

    public MainActivity(){
        Log.e("TAG","MainActivity()");
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        Log.e("TAG","onCreate()");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    protected void onStart() {
        Log.e("TAG","onStart()");
        super.onStart();

    }
    @Override
    protected void onResume() {
        Log.e("TAG","onResume()");
        super.onResume();

    }


    @Override
    protected void onPause() {
        Log.e("TAG","onPause()");
        super.onPause();
    }

    @Override
    protected void onStop() {
        Log.e("TAG","onStop()");
        super.onStop();
    }

    @Override
    protected void onDestroy() {
        Log.e("TAG","onDestroy()");
        super.onDestroy();
    }

    @Override
    protected void onRestart() {
        Log.e("TAG","onRestart()");
        super.onRestart();
    }
}

 

四、实验结果测试

1.此时安装好的JDK版本

23.能够创建一个新工程项目helloworld且能运行,在Android studio中能够改变主题和字体样式和大小,此时我选择默认不做改变

4.1)首次打开helloworld查看运行周期日志

2)点击back,查看周期日志

3)重新启动,查看周期日志

(4)点击home,查看周期日志 

五、收获与体会 

能够安装好JDK,收悉了android studio各个工程项目中的文件,能够初次运行helloworld,且学习到了app的生存周期并且能够查看日志。 

 

 

(二) 

 

一、实验目的:

安装智能手机开发相关软件平台,并在此基础上测试Activity的生命周期过程。

  1. 完成智能手机开发平台安装、以及相关配置;
  2. 并实现Hello World;
  3. 添加Log日志,通过Log日志验证Activity生命周期中的7个方法执行过程;
  4. 了解项目的基本文件目录结构,了解Activity周期中的4种状态。

二、实验内容:

5、bug调试、测试实验

以下代码是实现一个进度条测试程序,在界面(activity_main.xml)上放置一个水平长条形的进度条(style:progressBarStyleHorizontal,id:horizontal_pbar),以及一个启动进度条的按钮。点击按钮,进度条从0增加到满格100,进度条停止。由于代码中存在各种问题,现请你将代码修正和调试正确。

三、源代码

//activity_main.xml

  <?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical"

    tools:context="com.example.helloworld.MainActivity">

    <ProgressBar

        android:id="@+id/horizontal_pbar"

        style="?android:attr/progressBarStyleHorizontal"

        android:layout_width="match_parent"

        android:layout_height="50dp"

        android:max="100" />

    <Button

        android:id="@+id/start_pbar_btn"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:text="启动进度条" />

</LinearLayout>
//MainActivity.java 

package com.example.helloworld;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;

public class MainActivity extends AppCompatActivity {
    private ProgressBar mProgress;
    private Handler mHandler = new Handler();
    private Boolean FLAG=true;

    private Button startpbarbtn;

    int mProgressStatus=0;
    protected void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.activity_main);
        mProgress = (ProgressBar) findViewById(R.id.horizontal_pbar);
        //设置监听按钮
        startpbarbtn = (Button)findViewById(R.id.start_pbar_btn);
        //设置监视内容
        startpbarbtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                //监听
                new Thread(new Runnable() {
                    public void run() {
                    //推荐使用标志位使其不执行代码,不推荐使用true
                        while (FLAG) {
                            mProgressStatus = addNum();
                            // 更新进度条
                            // post方法推送一个Runnable到Handler,可以在此更新UI
                            mHandler.post(new Runnable() {
                                public void run() {
                                    if(mProgressStatus<100) {
                                        mProgress.setProgress(mProgressStatus);
                                        mProgressStatus++;
                                    }
                                    //执行完成后隐藏进度条并将标志设置为false
                                    else {
                                        mProgress.setVisibility(View.INVISIBLE);
                                        FLAG = false;
                                    }
                                }
                            });
                        }
                    }
                    private int addNum() {

                        try {
                            Thread.sleep(100);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                        return mProgressStatus;
                    }

                }).start();
            }
        });
    }
}

四、实验结果测试

1.bug程序修改完成,启动

2.点击启动进度条,开始启动

3.进度完成,隐藏进度条

 

五、收获与体会

对部分代码进行修改,增加了按钮监听,使得程序可以正常运行,对监听器的运用和Android studio代码的编写有了进一步的了解和运用。 

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
移动开发技术(Android)——实验1Android开发环境搭建及简单程序实现 移动开发技术(Android)——实验1 Android开发环境搭建及简单程序实现 ⼀、实验⽬的 1.熟练掌握Android开发环境搭建步骤; 2.掌握Android应⽤程序开发的基本步骤; 3.掌握Android应⽤程序结构。 ⼆、实验内容 1.Android开发环境搭建,要求: (1)将服务器上的相关开发包下载到本机。 (2)按照步骤搭建Android开发环境。 (3)实验报告中要求⽤语⾔描述具体的搭建步骤,并附以截图做辅助说明。 2.创建⼀个Android项⽬,项⽬名称为"shiyan0101_⾃我介绍",要求: (1)界⾯构成:⾄少5个⽂本框,分别⽤于显⽰学⽣的姓名、性别、出⽣年⽉、专业班级、爱好等内容。 (2)实验报告中要求⽤语⾔描述具体的实验步骤,并附以截图做辅助说明。 3.创建⼀个Android项⽬,项⽬名称为"shiyan0102_⽤户登录",要求: (1)界⾯构成:2个⽂本框,分别⽤于显⽰"⽤户名:"、"密码",2个编辑框⽤户接收输⼊的⽤户名和密码,1个按钮,⽂本显⽰"登 录"。 (2)实验报告中要求⽤语⾔描述具体的实验步骤,并附以截图做辅助说明。 三、实验过程 1.⾸先解压缩eclipse⾄D盘,然后在eclipse⽂件夹下的dropins⽂件⾥创建⼀个名为ADT的⽂件夹,将ADT-22.0.5压缩包中的features和 plugins复制到ADT中。 打开eclipse,选择菜单栏Window—>preferences—>在弹出的页⾯中选择Android选项—>SDK Location—>在右侧单击Browse按钮, 浏览到之前解压的SDK根⽬录,并单击"确定"按钮,然后再单击Apply和OK按钮。 2.创建⼀个Android项⽬,项⽬名称为"shiyan0101_⾃我介绍",要求: 界⾯构成:⾄少5个⽂本框,分别⽤于显⽰学⽣的姓名、性别、出⽣年⽉、专业班级、爱好等内容。 (1)在eclipse中创建⼀个Android Application Project,项⽬名称:shiyan0101_⾃我介绍 (2)在XML⽂件的GraphicLayout中⽤⿏标拖动5个TextView控件,分别设置text内容分别为name、sex、Birthday、Depertmant、 Hobby;⽤⿏标拖动5个EditText空间,分别放于5个TextView控件的后⾯。 (3)运⾏run——Andorid Application,程序结果截图如下 3.创建⼀个Android项⽬,项⽬名称为"shiyan0102_⽤户登录",要求: 界⾯构成:2个⽂本框,分别⽤于显⽰"⽤户名:"、"密码",2个编辑框⽤户接收输⼊的⽤户名和密码,1个按钮,⽂本显⽰"登录"。 (1)在ECLIPSE中创建⼀个Android Application Project,项⽬名称:shiyan0102_⽤户登录 (2)在XML⽂件的GraphicLayout中⽤⿏标拖动2个TextView控件,分别设置text内容分别为⽤户名、密码;⽤⿏标拖动2个EditText空 间,分别放于前两个个TextView控件的后⾯;⽤⿏标拖动⼀个button放于前者的下⾯,设置text内容为登陆。 (3)运⾏run——Andorid Application,程序结果截图如下。
Android移动应用开发实验指导书 课程代码: 总课时数: 适用专业: 院(系)名称: Android移动应用开发实验指导书全文共13页,当前为第1页。 Android移动应用开发实验指导书全文共13页,当前为第1页。 实验一深入理解Activity 目标 (1)掌握Activity开发、配置和使用。 (2)掌握Intent的几种常用的属性。 (3)Android系统内置Intent的使用。 (4)了解Activity生命周期 实验软、硬件环境 硬件:PC电脑一台; 配置:winxp或win7系统,内存大于4G,硬盘250G及以上 JDK1.7 、Eclipse、ADT、Android SDK 实验主要技术基础 (1)活动是Android的四大组件之一,它是一种可以包含用户界面的组件,主要用于和用户进行交互。 (2)Intent是Android程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。 任务 1、请在AndroidManifest.xml文件中配置SecondActivity: 配置Intent的Action属性为com.sise.intent.action.JHY_ACTION; 配置Category属性为com.sise.intent.category.JHY_CATEGORY。 通过隐式Intent的使用从FirstActivity启动SecondActivity,编写代码,运行程序,预期效果如下所示。 Android移动应用开发实验指导书全文共13页,当前为第2页。 Android移动应用开发实验指导书全文共13页,当前为第2页。 图1 程序运行初始化界面 图2 点击图1中的按钮后的运行结果 2、请使用显式Intent启动SecondActivity,并使用Intent从FirstActiv传递数据到SecondActivity。编写代码,运行程序,预期效果如下所示。 图1 程序运行初始化界面图2 点击图1中的按钮后的运行结果 3、使用Intent传递数据从SecondActivity返回数据到FirstActivity中去。编写代码,运行程序,预期效果如下所示。 图1 程序运行初始化界面图2 点击图1按钮运行结果 图3 点击图2按钮运行结果 实验方法与步骤 (1)创建活动 ActivityAndroid系统提供的一个活动基类所有的活动都必须直接或间接继承此类才能拥有活动的特性。 (2)布局文件 创建布局文件 加载布局文件 (3)在清单文件中注册活动 (4)以上方法完成多个活动的创建 Android移动应用开发实验指导书全文共13页,当前为第3页。(5)使用Intent完成多个活动之间的交互和数据传递 Android移动应用开发实验指导书全文共13页,当前为第3页。 实验Android的UI界面开发 目标 (1)掌握常用UI组件的功能和用法。 (2)掌握四种基本的布局。 (3)掌握自定义控件的2种使用方法。 (4)掌握ListView的简单用法。 (5)掌握自定义ListView控件的使用。 实验软、硬件环境 硬件:PC电脑一台; 配置:winxp或win7系统,内存大于4G,硬盘250G及以上 JDK1.7 、Eclipse、ADT、Android SDK 实验主要技术基础 (1)Android的UI界面都是由View和ViewGroup及其派生类组合而成的。其中,View是所有UI组件的基类,而ViewGroup是容纳这些组件的容器。 (2)Android的布局方式有LinearLayout(线性布局)、FrameLayout(单帧布局)、RelativeLayout(相对布局)、TableLayout(表格布局)。 (3)Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。 任务:制作精美聊天界面 使用自定义的ListView制作精美的聊天界面,编写代码,运行程序,预期效果如下所示。 Android移动应用开发实验指导书全文共13页,当前为第4页。 主界面布局示意图: Android移动应用开发实验指导书全文共13页,当前为第4页。 (要求画出) ListView子项布局示意图: (要求画出) ------------------------------------------------- 消息实体类创建: (主要代码) 自定义适配器类的创建: (主要代码) 主界面活动的代码: (主要代码) 实验方法与步骤 Step1:创建主界面布局文件。 Step2:创建ListView子项布局文件(可以使用And
实验Android环境构建Activity生命周期 【目的】 安装智能手机开发相关软件平台,并在此基础上测试Activity生命周期过程。 【要求】 1. 完成智能手机开发平台安装、以及相关配置; 2. 并实现Hello World; 3. 添加Log日志,通过Log日志验证Activity生命周期中的7个方法执行过程; 4. 了解项目的基本文件目录结构,了解Activity周期中的4种状态。 【过程】 (1)建立新项目,实现Hello World; 1)打开Eclipse,选择File -> New -> Android Project. 2)填写project name(helloword),然后选择选择build target(Android 2.1),填写Application name(helloword),Package name(your.helloword)完成创建。 3)运行结果如下图: (2)设置生命周期的Log日志,分别执行相关操作 在hellowordActivity.java文件中依次添加回调函数,分别在各个方法中添加日志监 视语句,复写函数。添加代码如下: package your.helloword; import android.app.Activity; import android.os.Bundle; import android.util.Log; public class HellowordActivity extends Activity { /** Called when the activity is first created. */ private static String TAG="helloword";//设置过滤关键字helloword @Override //完全生命周期开始时被调用,初始化activity public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.i(TAG,"(1) onCreate()");} @Override //可视生命周期开始时被调用,对用户界面进行必要的更改 public void onStart() { super.onStart(); Log.i(TAG,"(2) onStart()");} @Override //在活动生命周期开始时被调用,恢复被onPause()停止的用于界面更新的资源 public void onResume() { super.onResume(); Log.i(TAG,"(3) onResume()");} @Override //在重新进入可视生命周期前被调用,载入界面所需要的更改信息 public void onRestart() { super. onRestart(); Log.i(TAG,"(4) onRestart()");} @Override //在活动生命周期结束时被调用,用于保存持久的数据或释放占用的资源 public void onPause() { super.onPause(); Log.i(TAG,"(5) onPause()");} @Override //在可视生命周期结束时被调用,用于保存持久的数据或释放占用的资源 public void onStop() { super.onStop(); Log.i(TAG,"(6) onStop()");} @Override //在完全生命周期结束时被调用,释放资源,包括线程、数据连接等 public void onDestroy() { super.onDestroy(); Log.i(TAG,"(7) onDestroy()");} }     程序运行结果将会显示在Logcat中,打开程序,在LogCat的输出日志中检查输出情况, 执行顺序onCreate()、onStart()、onResume()。运行结果如下: 按下back键,在LogCat的输出日志中检查输出情况,执行顺序onPause()、onStop() 、onDestory()。运行结果如下: 按下home键,在LogCat的输出日志中检查输出情况,执行顺序onPause()、onStop( ); 再启动HelloWorld,在LogCat的输出日志中检查输出情况,执行顺序是onRestart()、 onStart()、onResume(); 实验心得 本次实验目的是学会安装智能手机开发相关软件平台,并在此基础上测试Activity的生命 周期过程。通过本次实验,了解了a
实验Android环境构建Activity生命周期 一、 实验内容: 1、页面要求:主页面三个按钮。 2、功能要求:点击按钮分别调用:内部的Activity、自定义的Activity、结束当前 的Activity。 二、实验要求: 1. 利用几个按钮来观察Activityd 的生命周期。 2.要求页面友好,交互性强。 3. 上机前预习实验,同学们相互间可以讨论;上机过程中要求独立完成;设计出具有各自 风格的页面。 4.实验报告要求有关键代码和界面截图,截图要清晰。实验总结要深 三、添加的代码如下: package your.helloword; import android.app.Activity; import android.os.Bundle; import android.util.Log; public class HellowordActivity extends Activity { /** Called when the activity is first created. */ private static String TAG="helloword";//设置过滤关键字helloword @Override //完全生命周期开始时被调用,初始化activity public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.i(TAG,"(1) onCreate()");} @Override //可视生命周期开始时被调用,对用户界面进行必要的更改 public void onStart() { super.onStart(); Log.i(TAG,"(2) onStart()");} @Override //在活动生命周期开始时被调用,恢复被onPause()停止的用于界面更新的资源 public void onResume() { super.onResume(); Log.i(TAG,"(3) onResume()");} @Override //在重新进入可视生命周期前被调用,载入界面所需要的更改信息 public void onRestart() { super. onRestart(); Log.i(TAG,"(4) onRestart()");} @Override //在活动生命周期结束时被调用,用于保存持久的数据或释放占用的资源 public void onPause() { super.onPause(); Log.i(TAG,"(5) onPause()");} @Override //在可视生命周期结束时被调用,用于保存持久的数据或释放占用的资源 public void onStop() { super.onStop(); Log.i(TAG,"(6) onStop()");} @Override //在完全生命周期结束时被调用,释放资源,包括线程、数据连接等 public void onDestroy() { super.onDestroy(); Log.i(TAG,"(7) onDestroy()");} } 四、运行结果如下图: 五、实验总结 本次实验目的是学会安装智能手机开发相关软件平台,并在此基础上测试Activity的生命 周期过程。通过本次实验,了解了android开发环境的配置,学会了创建一个Android应 用程序,了解了Activity生命周期。但在实验过程中仍有一些问题,还需多加练习。 ----------------------- 实验Android环境构建Activity生命周期(1)全文共2页,当前为第1页。 实验Android环境构建Activity生命周期(1)全文共2页,当前为第2页。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

平杨猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值