当前位置:   article > 正文

移动应用程序设计基础——Android环境构建与Activity生命周期_实验1:android studio开发环境搭建及activity生命周期

实验1:android studio开发环境搭建及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();

 三、源代码

  1. //activity_main.xml
  2.   <?xml version="1.0" encoding="utf-8"?>
  3. <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
  4.     xmlns:app="http://schemas.android.com/apk/res-auto"
  5.     xmlns:tools="http://schemas.android.com/tools"
  6.     android:layout_width="match_parent"
  7.     android:layout_height="match_parent"
  8.     tools:context=".MainActivity">
  9.     <TextView
  10.         android:layout_width="wrap_content"
  11.         android:layout_height="wrap_content"
  12.         android:text="Hello World!"
  13.         app:layout_constraintBottom_toBottomOf="parent"
  14.         app:layout_constraintLeft_toLeftOf="parent"
  15.         app:layout_constraintRight_toRightOf="parent"
  16.         app:layout_constraintTop_toTopOf="parent" />
  17. </androidx.constraintlayout.widget.ConstraintLayout>
  1. //MainActivity.java 
  2. package com.example.helloworld;
  3. import androidx.appcompat.app.AppCompatActivity;
  4. import android.os.Bundle;
  5. import android.app.Activity;
  6. import android.os.Bundle;
  7. import android.util.Log;
  8. public class MainActivity extends Activity {
  9.     public MainActivity(){
  10.         Log.e("TAG","MainActivity()");
  11.     }
  12.     @Override
  13.     protected void onCreate(Bundle savedInstanceState) {
  14.         Log.e("TAG","onCreate()");
  15.         super.onCreate(savedInstanceState);
  16.         setContentView(R.layout.activity_main);
  17.     }
  18.     @Override
  19.     protected void onStart() {
  20.         Log.e("TAG","onStart()");
  21.         super.onStart();
  22.     }
  23.     @Override
  24.     protected void onResume() {
  25.         Log.e("TAG","onResume()");
  26.         super.onResume();
  27.     }
  28.     @Override
  29.     protected void onPause() {
  30.         Log.e("TAG","onPause()");
  31.         super.onPause();
  32.     }
  33.     @Override
  34.     protected void onStop() {
  35.         Log.e("TAG","onStop()");
  36.         super.onStop();
  37.     }
  38.     @Override
  39.     protected void onDestroy() {
  40.         Log.e("TAG","onDestroy()");
  41.         super.onDestroy();
  42.     }
  43.     @Override
  44.     protected void onRestart() {
  45.         Log.e("TAG","onRestart()");
  46.         super.onRestart();
  47.     }
  48. }
  49.  

四、实验结果测试

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,进度条停止。由于代码中存在各种问题,现请你将代码修正和调试正确。

三、源代码

  1. //activity_main.xml
  2.   <?xml version="1.0" encoding="utf-8"?>
  3. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  4.     xmlns:tools="http://schemas.android.com/tools"
  5.     android:layout_width="match_parent"
  6.     android:layout_height="match_parent"
  7.     android:orientation="vertical"
  8.     tools:context="com.example.helloworld.MainActivity">
  9.     <ProgressBar
  10.         android:id="@+id/horizontal_pbar"
  11.         style="?android:attr/progressBarStyleHorizontal"
  12.         android:layout_width="match_parent"
  13.         android:layout_height="50dp"
  14.         android:max="100" />
  15.     <Button
  16.         android:id="@+id/start_pbar_btn"
  17.         android:layout_width="match_parent"
  18.         android:layout_height="wrap_content"
  19.         android:text="启动进度条" />
  20. </LinearLayout>
  1. //MainActivity.java 
  2. package com.example.helloworld;
  3. import androidx.appcompat.app.AppCompatActivity;
  4. import android.os.Bundle;
  5. import android.os.Handler;
  6. import android.view.View;
  7. import android.widget.Button;
  8. import android.widget.ProgressBar;
  9. public class MainActivity extends AppCompatActivity {
  10.     private ProgressBar mProgress;
  11.     private Handler mHandler = new Handler();
  12.     private Boolean FLAG=true;
  13.     private Button startpbarbtn;
  14.     int mProgressStatus=0;
  15.     protected void onCreate(Bundle icicle) {
  16.         super.onCreate(icicle);
  17.         setContentView(R.layout.activity_main);
  18.         mProgress = (ProgressBar) findViewById(R.id.horizontal_pbar);
  19.         //设置监听按钮
  20.         startpbarbtn = (Button)findViewById(R.id.start_pbar_btn);
  21.         //设置监视内容
  22.         startpbarbtn.setOnClickListener(new View.OnClickListener() {
  23.             @Override
  24.             public void onClick(View view) {
  25.                 //监听
  26.                 new Thread(new Runnable() {
  27.                     public void run() {
  28.                     //推荐使用标志位使其不执行代码,不推荐使用true
  29.                         while (FLAG) {
  30.                             mProgressStatus = addNum();
  31.                             // 更新进度条
  32.                             // post方法推送一个Runnable到Handler,可以在此更新UI
  33.                             mHandler.post(new Runnable() {
  34.                                 public void run() {
  35.                                     if(mProgressStatus<100) {
  36.                                         mProgress.setProgress(mProgressStatus);
  37.                                         mProgressStatus++;
  38.                                     }
  39.                                     //执行完成后隐藏进度条并将标志设置为false
  40.                                     else {
  41.                                         mProgress.setVisibility(View.INVISIBLE);
  42.                                         FLAG = false;
  43.                                     }
  44.                                 }
  45.                             });
  46.                         }
  47.                     }
  48.                     private int addNum() {
  49.                         try {
  50.                             Thread.sleep(100);
  51.                         } catch (InterruptedException e) {
  52.                             e.printStackTrace();
  53.                         }
  54.                         return mProgressStatus;
  55.                     }
  56.                 }).start();
  57.             }
  58.         });
  59.     }
  60. }

四、实验结果测试

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

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

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

 

五、收获与体会

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/252009?site
推荐阅读
相关标签
  

闽ICP备14008679号