热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

解析Android应用程序运行机制

这篇文章主要介绍了Android应用程序运行机制,有需要的朋友可以参考一下

在标准的Windows和Linux桌面操作系统中,同时可以在不同的窗口中运行多个应用程序,每次只有一个应用程序是当前焦点状态,但其他的应用程序都是一个平等的位置。用户可以随时切换每个应用程序,在不需要应用程序时,也需要用户来关闭应用程序。

    但是Android操作系统的应用程序却不是采用这种方式。

    Android中每次只有一个应用程序运行在最前面,除了状态栏的位置,当前应用程序将铺满整个屏幕。用户最常见的应用程序就是应用的主页(Home application),这个程序主要显示背景图和应用程序快捷方式、Widget等,用户可以在此激活应用程序。

    用户在Android运行一个应用程序时,Android启动该程序并把它放到最前端,从这个应用程序中,用户可以启动别的应用,或者该应用自己的其他界面,一个启动一个。而这些程序和屏幕都被活动管理(Android Activity Manager)记录在应用程序堆栈(application stack)中,在任何时候,用户可以使用后退按钮返回到前一个应用屏幕,这有点类似浏览器的网页浏览历史功能一样,用户可以使用后退按钮返回到上一个应用屏幕。

    在Android内部,每个用户界面代表一个活动类(Activity Class),每个活动有其自身的生命周期,每个应用程序有一个或多个活动。

    在Android中,每个应用程序都是“活跃的”,即使它的进程被关闭以后。换而言之,其活动(Activity)的生命周期和其进程的生命周期不是绑定在一起的,进程只是活动的一次性容器而已,这与Windows、Linux那些标准的桌面操作系统是不同的。在标准的Windows和Linux桌面操作系统中,同时可以在不同的窗口中运行多个应用程序,每次只有一个应用程序是当前焦点状态,但其他的应用程序都是一个平等的位置。用户可以随时切换每个应用程序,在不需要应用程序时,也需要用户来关闭应用程序。

    但是Android操作系统的应用程序却不是采用这种方式。

    Android中每次只有一个应用程序运行在最前面,除了状态栏的位置,当前应用程序将铺满整个屏幕。用户最常见的应用程序就是应用的主页(Home application),这个程序主要显示背景图和应用程序快捷方式、Widget等,用户可以在此激活应用程序。

    用户在Android运行一个应用程序时,Android启动该程序并把它放到最前端,从这个应用程序中,用户可以启动别的应用,或者该应用自己的其他界面,一个启动一个。而这些程序和屏幕都被活动管理(Android Activity Manager)记录在应用程序堆栈(application stack)中,在任何时候,用户可以使用后退按钮返回到前一个应用屏幕,这有点类似浏览器的网页浏览历史功能一样,用户可以使用后退按钮返回到上一个应用屏幕。

    在Android内部,每个用户界面代表一个活动类(Activity Class),每个活动有其自身的生命周期,每个应用程序有一个或多个活动。

    在Android中,每个应用程序都是“活跃的”,即使它的进程被关闭以后。换而言之,其活动(Activity)的生命周期和其进程的生命周期不是绑定在一起的,进程只是活动的一次性容器而已,这与Windows、Linux那些标准的桌面操作系统是不同的。


推荐阅读
  • 通常情况下,修改my.cnf配置文件后需要重启MySQL服务才能使新参数生效。然而,通过特定命令可以在不重启服务的情况下实现配置的即时更新。本文将详细介绍如何在线调整MySQL配置,并验证其有效性。 ... [详细]
  • 本文详细介绍了如何在 Android 中使用值动画(ValueAnimator)来动态调整 ImageView 的高度,并探讨了相关的关键属性和方法,包括图片填充后的高度、原始图片高度、动画变化因子以及布局重置等。 ... [详细]
  • Shell脚本中变量操作详解
    本文基于《鸟哥的Linux私房菜》一书,详细介绍了Shell脚本中变量的使用方法,包括变量的赋值规则、字符串处理技巧以及环境变量的管理等,旨在帮助读者更好地理解和使用Shell中的变量。 ... [详细]
  • 气象对比分析
    本文探讨了不同地区和时间段的天气模式,通过详细的图表和数据分析,揭示了气候变化的趋势及其对环境和社会的影响。 ... [详细]
  • 本文详细介绍了如何解决 Microsoft SQL Server 中用户 'sa' 登录失败的问题。错误代码为 18470,提示该帐户已被禁用。我们将通过 Windows 身份验证方式登录,并启用 'sa' 帐户以恢复其访问权限。 ... [详细]
  • 本文详细介绍了Java中实现异步调用的多种方式,包括线程创建、Future接口、CompletableFuture类以及Spring框架的@Async注解。通过代码示例和深入解析,帮助读者理解并掌握这些技术。 ... [详细]
  • Java中的基本数据类型与包装类解析
    本文探讨了Java编程语言中的8种基本数据类型及其对应的包装类。通过分析这些数据类型的特性和使用场景,以及自动拆装箱机制的实现原理,帮助开发者更好地理解和应用这些概念。 ... [详细]
  • 本文详细探讨了Java中的包管理机制,包括默认包的使用和自定义包名的创建方法。通过实际操作,帮助开发者更好地理解和应用包管理。 ... [详细]
  • 本文详细介绍了 Android 开发中 layout_gravity 属性的使用方法及其在不同布局下的效果,旨在帮助开发者更好地理解和利用这一属性来精确控制视图的布局。 ... [详细]
  • 本文深入探讨了 Exchange Server 2010 中客户端访问的代理和重定向机制,特别是在跨站点环境中如何配置这些功能以确保用户能够顺利访问邮箱服务。通过详细解析不同场景下的应用,帮助管理员更好地理解和实施相关设置。 ... [详细]
  • 本文深入探讨了 PHP 实现计划任务的方法,包括其原理、具体实现方式以及在不同操作系统中的应用。通过详细示例和代码片段,帮助开发者理解和掌握如何高效地设置和管理定时任务。 ... [详细]
  • 本文介绍如何配置SecureCRT以正确显示Linux终端的颜色,并解决中文显示问题。通过简单的步骤设置,可以显著提升使用体验。 ... [详细]
  • 本文深入探讨了 Delphi 中类对象成员的核心概念,包括 System 单元的基础知识、TObject 类的定义及其方法、TClass 的作用以及对象的消息处理机制。文章不仅解释了这些概念的基本原理,还提供了丰富的补充和专业解答,帮助读者全面理解 Delphi 的面向对象编程。 ... [详细]
  • cJinja:C++编写的轻量级HTML模板引擎
    本文介绍了cJinja,这是一个用C++编写的轻量级HTML模板解析库。它利用ejson来处理模板中的数据替换(即上下文),其语法与Django Jinja非常相似,功能强大且易于学习。 ... [详细]
  • 本文针对初学者在创建Android项目时遇到的R.java文件错误提供了解决方案,通过实际案例和详细的日志分析,帮助读者快速定位并解决问题。 ... [详细]
author-avatar
默默追寻爱情
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有