• 记录:移动设备软件开发(activity组件)


    前言

    移动设备软件开发是指为智能手机、平板电脑等移动设备设计和开发应用程序的过程。移动设备软件开发涉及多种技术、平台和工具,例如Android、iOS、Windows Phone、Flutter、React Native等。移动设备软件开发的目的是为用户提供便捷、高效和有趣的移动体验,满足用户的各种需求和偏好。

    这个系列的文章是对Android开发学习的一点记录(也许还有实验什么的),不管是作为分享还是稍微巩固一下可能都是有益的(误)

    使用书籍:疯狂Android讲义
    ide: Android Studio

    Android简介和发展

    Android是一种基于Linux内核的开源移动操作系统,主要用于智能手机和平板电脑。Android最初由安迪·鲁宾(Andy Rubin)等人开发,后来被谷歌收购。Android的第一个商用版本于2008年9月23日发布,目前已经发展到Android 12,是全球最流行的移动操作系统之一。Android的特点包括多任务处理、丰富的应用程序商店、多种用户界面、高度可定制性和跨平台兼容性等。

    Android应用的基本组件介绍

    Android应用是由四种基本组件构成的:活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供器(Content Provider)。这些组件可以相互协作,也可以独立运行,具有不同的功能和生命周期。

    活动(Activity)是用户与应用交互的界面,每个活动都对应一个屏幕。活动之间可以通过意图(Intent)来启动或传递数据。活动有自己的生命周期,包括创建、启动、运行、暂停、停止和销毁等状态。

    服务(Service)是在后台执行长时间任务的组件,不需要用户交互。服务可以在应用的进程内或者在其他进程中运行,也可以通过意图来启动或绑定。服务有自己的生命周期,包括创建、启动、运行、绑定、解绑和销毁等状态。

    广播接收器(Broadcast Receiver)是用来接收和响应系统或应用发出的广播消息的组件,例如电池低电、网络变化、短信到达等。广播接收器没有用户界面,也没有自己的生命周期,只在接收到广播时被激活,执行完逻辑后就销毁。

    内容提供器(Content Provider)是用来管理和共享应用数据的组件,例如联系人、照片、音乐等。内容提供器通过统一的接口来提供数据,其他应用可以通过内容解析器(Content Resolver)来访问或修改数据。内容提供器有自己的权限机制,可以控制数据的访问范围和安全性。
    在这里插入图片描述

    Activity组件

    Activity简介

    Activity组件是四大组件之一,在应用中一个Activity可以用来表示一个界面, 中文意思也可以理解为“活动” ,即一个活动开始,代表Activity组件启动;活动结束,代表一个Activity的生命周期结束。

    一个android应用必须通过Activity来运行和启动,和J2ME 的MIDlet 一样,在android中,Activity的生命周期统一交给系统管理。与MIDlet 不同的是安装在android 中的所有的Activity 都是平等的。

    理解以下四个基本概念,将有助于我们更好的了解Activity:

    • Application(APP)

    • Activity

    • Activity栈

    • Task

    每个Application均占有独立的内存空间。需要注意的是:Application之间虽然相互独立,但APP_1中的Activity与APP_2中的Activity之间可以进行通信(调用、访问等)。

    Activity的状态和生命周期

    1、Activity的状态:

    (1)Resumed:Activity对象出于运行状态。一个新Activity 启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可以与用户交互的激活状态。

    (2)Paused:另一个Activity位于前端,但是本Activity还可见。

        Paused状态常用于:当Activity被另一个透明或者Dialog样式的Activity覆盖时的状态。此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但它已经失去了焦点故不可与用户交互。注:一个Activity出于paused状态时,系统并不会释放资源。释放资源你的操作要靠开发者来完成。
    
    • 1

    (3)Stopped:另一个Activity位于前端,完全遮挡本Activity。

    (4)killed:Activity被系统杀死回收或者没有被启动时。
    在这里插入图片描述
    2、Activity的生命周期:
    在这里插入图片描述
    (我说怎么到处都是这张图,原来是从Android开发者文档拿的)
    生命周期代码:

    import android.app.Activity;
    import android.os.Bundle;
    import android.util.Log;
    
    public class MainActivity extends Activity {
    
        private static final String TAG = "smyhvae";
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Log.d(TAG, "onCreate");
        }
    
        @Override
        protected void onStart() {
            super.onStart();
            Log.d(TAG, "onStart");
        }
    
        @Override
        protected void onResume() {
            super.onResume();
            Log.d(TAG, "onResume");
        }
    
    
        @Override
        protected void onPause() {
            super.onPause();
            Log.d(TAG, "onPause");
        }
    
    
        @Override
        protected void onStop() {
            super.onStop();
            Log.d(TAG, "onStop");
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            Log.d(TAG, "onDestroy");
        }
    
        @Override
        protected void onRestart() {
            super.onRestart();
            Log.d(TAG, "onRestart");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53

    小结

    暂时就先到着吧(毕竟就讲到这,虽然可以提前写,但是我还是希望有条理一点)

    以上。

  • 相关阅读:
    数据湖在爱奇艺数据中台的应用
    华为机试 - 面试
    C++零基础教程(函数重载)
    单体JOB向分布式JOB迁移案例
    关于ActiveMQ的安装-配置说明
    R2DBC正式孵化成功,利好Spring Webflux
    1576. 替换所有的问号
    R and RStudio的安装教程【2023】
    C++ Reference: Standard C++ Library reference: C Library: cstring: strcpy
    【自动驾驶】针对低速无人车的线控底盘技术
  • 原文地址:https://blog.csdn.net/m0_72471315/article/details/132891360