当前位置: 首页 > news >正文

AndroidStudio实验报告——实验一、二

目录

实验一:    AS安装与安卓环境搭建     

一、实验目标

二、实验内容

(一)Android Studio安装

(二)JDK安装与配置

(三)Android SDK安装与配置

三、实验结果:(实验小结与结果截图) 

实验小结:

结果截图:

实验二:    Activity     

实验目标和实验内容:

实验结果:(实验小结与结果截图) 

实验方案:

核心代码

跳转核心代码:

跳转时生命周期方法核心代码:

结果截图

实验小结


实验    AS安装与安卓环境搭建     

实验目标和实验内容:

一、实验目标

掌握Android Studio的安装过程

搭建安卓开发环境

安装和配置Java Development Kit (JDK),理解JDK版本与Android Studio的兼容性。

安装Android SDK(Software Development Kit)。

配置环境变量,使得系统能够正确识别Android Studio、JDK和Android SDK的路径。

二、实验内容

(一)Android Studio安装

下载Android Studio

访问Android官方开发者网站(https://developer.android.com/studio)。

安装过程

双击下载的.exe安装文件,启动安装向导。

(二)JDK安装与配置

下载JDK

访问Oracle官方网站(https://www.oracle.com/java/technologies/javase - downloads.html)或者OpenJDK官方网站(https://openjdk.java.net/),根据操作系统选择合适的JDK版本进行下载。

安装JDK

配置环境变量

(三)Android SDK安装与配置

安装Android SDK

三、实验结果:(实验小结与结果截图) 

实验小结:

通过本次实验,我成功完成了以下任务:

顺利安装了Android Studio,并确保其能够正常启动。

配置了Android开发环境,安装了必要的SDK组件。

创建并运行了一个基本的应用程序。

验证了应用程序能够在模拟器上正常运行,表明环境搭建成功。

结果截图:

实验    Activity     

实验目标和实验内容:

  1. Activity是安卓系统中负责用户可视化界面交互的关键组件,需要掌握其原理;
  2. 掌握Activity的注册;
  3. 掌握Activity的生命周期;
  4. 掌握Intent,实现Activity之间的跳转;
  5. 请设计实验验证Activity的生命周期;
  6. 请设计实验验证跳转时Activity生命周期的状态变化。

实验结果:(实验小结与结果截图) 

  1. 实验方案设计说明

实验方案:

1.创建一个新的Android项目

在Android Studio中,选择“File”->“New”->“New Project”,按照向导创建一个基本的Android应用项目。

2.创建第二个Activity

在上述项目中,再创建一个新的Activity,例如MainActivity2.java,同样重写其生命周期方法(类似MainActivity中的重写方式)。

3.在MainActivity中添加跳转逻辑.

4.在Activity中重写生命周期方法

打开项目中的主Activity,重写生命周期方法。

5.运行应用并观察日志

在Android设备或模拟器上运行应用。

  1. 核心代码

跳转核心代码:
import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity {@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);EdgeToEdge.enable(this);setContentView(R.layout.activity_main);ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);return insets;});// 在这个位置创建显式Intent,以跳转到另一个ActivityButton jumpButton = findViewById(R.id.jumpButton);jumpButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(MainActivity.this, MainActivity2.class);startActivity(intent);}});
}}

跳转时生命周期方法核心代码:
import android.os.Bundle;import android.util.Log;import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity {private static final String TAG = "MainActivity";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Log.d(TAG, "onCreate: Activity is created");}@Overrideprotected void onStart() {super.onStart();Log.d(TAG, "onStart: Activity is starting");}@Overrideprotected void onResume() {super.onResume();Log.d(TAG, "onResume: Activity is resuming");}@Overrideprotected void onPause() {super.onPause();Log.d(TAG, "onPause: Activity is pausing");}@Overrideprotected void onStop() {super.onStop();Log.d(TAG, "onStop: Activity is stopping");}@Overrideprotected void onDestroy() {super.onDestroy();Log.d(TAG, "onDestroy: Activity is being destroyed");}@Overrideprotected void onRestart() {super.onRestart();Log.d(TAG, "onRestart: Activity is restarting");}}

  1. 结果截图

  1. 实验小结

通过本次实验,我验证了Activity的生命周期以及跳转时Activity生命周期的状态变化。在实验中,我创建了两个Activity:MainActivity和MainActivity2,并在这两个Activity中分别重写了onCreate、onStart、onResume、onPause、onStop、onDestroy方法,以打印相应的日志信息。

通过点击按钮实现跳转,我观察到以下日志输出情况:

当MainActivity启动时,依次调用了onCreate、onStart、onResume方法。

当我点击按钮跳转到MainActivity2时,MainActivity的onPause、onStop方法被调用,然后MainActivity2的onCreate、onStart、onResume方法被调用。

当我返回MainActivity时,MainActivity2的onPause、onStop、onDestroy方法被调用,然后MainActivity的onRestart、onStart、onResume方法被调用。

这些观察结果验证了Activity的生命周期以及跳转时Activity生命周期的状态变化。

http://www.lryc.cn/news/464223.html

相关文章:

  • Nginx超简洁知识:负载均衡-反向代理,动静分离,配置文件
  • 云手机:社交平台运营的热门工具
  • iptables限速规则
  • 易泊车牌识别:海外车牌快速定制,开启智能识别新时代
  • 同一个交换机不同vlan的设备为什么不能通信
  • 《业务三板斧:定目标、抓过程、拿结果》读书笔记4
  • PRCV 2024 - Day2
  • 大厂面试真题-了解云原生吗,简单说一下docker和k8s
  • Python基础入门
  • 深入了解路由
  • 三大编程思想(POP、OOP、AOP、FOP)及oop 五大设计原则
  • JavaWeb开发4
  • Git中Update和Pull的区别
  • 物理安全概述
  • 引领智慧文旅新纪元,开启未来旅游新境界
  • Qt开发技巧(十七):新窗口控件用智能指针,将一些配置类变量封装起来,Qt窗体的Z序叠放,子窗体的释放,Qt中的事件发送,Qt的全局头文件
  • 5G 现网信令参数学习(1) - MIB
  • stm32单片机个人学习笔记9(TIM输入捕获)
  • ubuntu 安装haproxy
  • TF-A(Trusted Firmware-A)及其启动流程详解:以stm32MP1平台为例
  • FL Studio 2024 发布,添加 FL Cloud 插件、AI 等功能
  • webpack实战 | 医保服务平台信息查询 | 国密SM4 | SM2 | 逆向分析
  • 脉冲扩散模型
  • blender分离含有多个动作的模型,并导出含有材质的fbx模型
  • 胤娲科技:AI大模型的隐秘战争——当“智能”成为双刃剑
  • RK平台 GPIO序号转换软件
  • UDP协议和TCP协议
  • 算法题总结(十三)—— 动态规划(上)
  • Leetcode - 周赛419
  • C# 的两个list怎么判断是否存在交集