当前位置: 首页 > 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生命周期的状态变化。

相关文章:

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

目录 实验一: AS安装与安卓环境搭建 一、实验目标 二、实验内容 (一)Android Studio安装 (二)JDK安装与配置 (三)Android SDK安装与配置 三、实验结果:(实…...

Nginx超简洁知识:负载均衡-反向代理,动静分离,配置文件

首先介绍一下为什么需要nginx? 在低并发场景下(也就是用户量特别少的情况下),我们只需要部署一台服务器就能满足用户数量少的需求。 但是如果用户量逐渐增多,只有一台服务器是不够的。于是我们需要部署多台服务器。 …...

云手机:社交平台运营的热门工具

随着互联网的飞速发展,社交平台已经成为企业推广和营销的核心渠道。传统的运营方式已经无法满足高效运营的需求,而云手机作为新兴工具,逐渐成为社交平台运营的前沿趋势。本文将深入分析云手机如何优化社交平台的运营流程,助力企业…...

iptables限速规则

环境: iptables服务器:172.16.12.33 client:192.168.1.2 1、在防火墙上配置客户端的下载速度是1M/s (1个包是1.3KB) #限速客户端每秒的下载速度是1024KB,超出限制的流量就丢弃 [rootiptables-172-16-12-…...

易泊车牌识别:海外车牌快速定制,开启智能识别新时代

在当今数字化快速发展的时代,车牌识别技术已经成为了智能交通系统中不可或缺的一部分。而在众多车牌识别解决方案中,易泊车牌识别系统以其卓越的性能和独特的优势脱颖而出,尤其是在海外车牌快速定制方面,更是展现出了强大的实力。…...

同一个交换机不同vlan的设备为什么不能通信

在同一个交换机上,不同 VLAN 的设备不能直接通信,这是因为 VLAN(虚拟局域网)通过在数据链路层(OSI 第2层)对设备进行逻辑隔离,将不同 VLAN 的设备视为属于不同的网络。具体原因如下:…...

《业务三板斧:定目标、抓过程、拿结果》读书笔记4

管理者抓技能的第二个动作是构地图 管理者如何构建能力地图? 梳流程 构建能力地图的关键是梳理业务流程,明确“要做什么”及“怎么 做”。管理者只有明晰每一项业务流程对应的策略、关键举措、风 险、工具、话术、案例等,才能将方法复制给每一…...

PRCV 2024 - Day2

主会场 —— 主旨报告 报告题目:大模型背景下的数字内容取证 讲者:谭铁牛(中科院自动化所,中国科学院院士) 图1 大模型背景下的数字内容取证 在数字化时代,随着人工智能技术的迅猛发展,尤其是深度学习的广泛应用&…...

大厂面试真题-了解云原生吗,简单说一下docker和k8s

K8s(Kubernetes)和Docker都是容器化技术中的关键组件,但它们各自扮演着不同的角色。以下是对这两者的详细解析: 一、Docker Docker是一个开源的容器化平台,它允许开发人员将应用程序及其依赖项打包为一个独立的镜像&…...

Python基础入门

目录 1. 简介 2. 安装与设置 2.1 检查是否已安装Python 2.2 使用Python解释器 2.3 使用代码编辑器 3. Python基础语法 3.1 注释 3.2 变量和数据类型 3.3 输入输出 3.4 基本运算 4. 条件语句与循环 4.1 条件判断 4.2 循环 while循环 for循环 break与continue 5.…...

深入了解路由

目录 1. 什么是路由?2. 路由与网关的关系3. 路由表4. 静态路由与动态路由5. 下一跳6. 动态路由及常用路由协议7. 路由算法解析 1. 什么是路由? 路由 是网络中将数据包从源地址传送到目标地址的过程。它涉及网络设备(如路由器)根据…...

三大编程思想(POP、OOP、AOP、FOP)及oop 五大设计原则

概述 POP:面向过程编程(Procedure Oriented Programming) OOP:面向对象编程(Object Oriented Programming) AOP:面向切面编程(Aspect Oriented Programming) FOP&#x…...

JavaWeb开发4

JS对象 Array Array对象用于定义数组 var 变量名new Array(元素列表); var 变量名[元素列表] 访问 arr[索引]值; 注意:JS中数组相对于Java中集合,数组的长度是可变的,JS是弱类型,所以可以存储任意类型…...

Git中Update和Pull的区别

在本文中,我们将介绍Git中的两个操作——”Update”和”Pull”,并解释它们之间的区别。 1、“Update”的含义和用法 “Update”是Git中用于更新本地仓库和工作区的操作。它的作用是将远程仓库中的最新变更同步到本地。当我们执行”Update”操作时&…...

物理安全概述

目录 物理安全概念物理安全威胁物理安全威胁物理安全保护物理安全分析与防护 物理安全概念 我不需要通过高深的网络技术来攻击你,直接在物理层面把你干倒,不要小瞧,其实这种攻击是最致命的,你把我的电脑给入侵了,可能…...

引领智慧文旅新纪元,开启未来旅游新境界

融合创新科技,重塑旅游体验,智慧文旅项目定义旅游新未来 在全球化的浪潮中,旅游已成为连接世界的重要纽带。智慧文旅项目,不仅仅是一次技术的革新,更是对旅游行业未来发展的一次深刻思考。信鸥科技通过运用云计算、大数…...

Qt开发技巧(十七):新窗口控件用智能指针,将一些配置类变量封装起来,Qt窗体的Z序叠放,子窗体的释放,Qt中的事件发送,Qt的全局头文件

继续讲一些Qt开发中的技巧操作: 1.新窗口控件用智能指针 通过对Qt自带Examples的源码研究你会发现,越往后的版本,越喜欢用智能指针QScopedPointer来定义对象,这样有个好处就是用的地方只管new就行,一直new下去&#xf…...

5G 现网信令参数学习(1) - MIB

MIB消息中的参数 systemFrameNumber 000101B, subCarrierSpacingCommon scs30or120, ssb-SubcarrierOffset 6, dmrs-TypeA-Position pos2, pdcch-ConfigSIB1 { controlResourceSetZero 10, searchSpaceZero 4 }, cellBarred notBarred, intraFreqReselection allowed, sp…...

stm32单片机个人学习笔记9(TIM输入捕获)

前言 本篇文章属于stm32单片机(以下简称单片机)的学习笔记,来源于B站教学视频。下面是这位up主的视频链接。本文为个人学习笔记,只能做参考,细节方面建议观看视频,肯定受益匪浅。 STM32入门教程-2023版 细…...

ubuntu 安装haproxy

####安装##### sudo apt update sudo apt install haproxy sudo haproxy -v sudo systemctl status haproxy sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg-org####配置站点##### nano /etc/haproxy/haproxy.cfgfrontend www-httpbind *:5001mode httpdefault_ba…...

OpenClaw+百川2-13B-4bits:智能客服模拟器搭建教程

OpenClaw百川2-13B-4bits:智能客服模拟器搭建教程 1. 为什么需要本地化客服模拟器 去年参与一个电商项目时,我遇到了一个典型痛点:每次修改客服话术都需要重新训练线上模型,既消耗API费用又影响真实客户体验。当时就萌生了搭建本…...

2026年了论文引用格式还在手动换来换去?找对工具让你3分钟搞定所有期刊要求

研二研三的你是否正在为毕业论文发愁?好不容易写完初稿,导师却说:“这个期刊要求用APA格式,你用的GB/T不符合要求”。于是你开始手动调整几十条参考文献,括号改成方括号,作者名字调换顺序…一晚上过去了还没…...

初次学C语言编程(2)

上节课内容补充在上节课中的转义字符中\ddd 表示一个三个数字的八进制的数字 例如\130 十进制的ASCII是88 表示字符X\xdd表示的是一个两个数字的十六进制的数字 例如\x30 十进制ASCII是48 表示字符0\0表示null 没有字符 ASCII码是0,用于字符串的结束符号一、C…...

【2026春招必看】MiniMax大模型算法岗面试深度解析:薪资福利+核心考点+项目经验!手把手教你冲刺高薪Offer!

今天给大家梳理出来minmax的福利待遇,顺便分享面试大模型算法岗的面试题。喜欢本文记得收藏、关注、点赞。 废话不多说,我们要开车了。 薪资介绍 月薪(base) 应届/初级(1–2年):35K–50K / 月中…...

Docker镜像拉取超时?5分钟搞定国内镜像源加速配置(附最新可用镜像列表)

Docker镜像加速全攻略:2024国内镜像源配置与疑难排解 每次在终端输入docker pull后盯着进度条卡住不动,是不是感觉血压都在飙升?作为国内开发者,Docker官方镜像源的访问问题就像一场永远打不完的"拉锯战"。但别急着摔键…...

OpenClaw 太难装了?试试 LangTARS:一行命令部署 + WebUI 管理面板,还能接入 Dify/Coze/nn??促

1. 什么是 Apache SeaTunnel? Apache SeaTunnel 是一个非常易于使用、高性能、支持实时流式和离线批处理的海量数据集成平台。它的目标是解决常见的数据集成问题,如数据源多样性、同步场景复杂性以及资源消耗高的问题。 核心特性 丰富的数据源支持&#…...

Java全栈开发工程师面试实录:从基础到高阶的深度技术探讨

Java全栈开发工程师面试实录:从基础到高阶的深度技术探讨 一、开场介绍 面试官(李工):你好,我是李工,目前在一家互联网大厂负责后端架构设计。今天来聊聊你的技术背景和项目经验。 应聘者(张伟&…...

终极启动盘制作工具:Deepin Boot Maker 完整使用指南

终极启动盘制作工具:Deepin Boot Maker 完整使用指南 【免费下载链接】deepin-boot-maker 项目地址: https://gitcode.com/gh_mirrors/de/deepin-boot-maker Deepin Boot Maker 是一款免费开源、简单快速的启动盘制作工具,专为新手和普通用户设计…...

yojimbo网络模拟器完全使用指南:在开发环境中测试真实网络条件

yojimbo网络模拟器完全使用指南:在开发环境中测试真实网络条件 【免费下载链接】yojimbo A network library for client/server games written in C 项目地址: https://gitcode.com/gh_mirrors/yo/yojimbo yojimbo是一款专为客户端/服务器游戏设计的C网络库&…...

自然堂冲刺港股:年营收53亿 利润3.5亿 估值71亿

雷递网 雷建平 4月7日演员虞书欣代言的自然堂全球控股有限公司(简称:“自然堂”)日前更新招股书,准备在港交所上市。2025年,自然堂引入一轮融资,总金额达7.42亿元。美町与自然堂于2024年10月23日订立股份认…...