`

如何启动一个应用程序

 
阅读更多
整个应用程序的启动过程要执行很多步骤,但是整体来看,主要分为以下五个阶段:
       一. Step1 - Step 11:Launcher通过Binder进程间通信机制通知ActivityManagerService,它要启动一个Activity;
       二. Step 12 - Step 16:ActivityManagerService通过Binder进程间通信机制通知Launcher进入Paused状态;
       三. Step 17 - Step 24:Launcher通过Binder进程间通信机制通知ActivityManagerService,它已经准备就绪进入Paused状态,于是ActivityManagerService就创建一个新的进程,用来启动一个ActivityThread实例,即将要启动的Activity就是在这个ActivityThread实例中运行;
       四. Step 25 - Step 27:ActivityThread通过Binder进程间通信机制将一个ApplicationThread类型的Binder对象传递给ActivityManagerService,以便以后ActivityManagerService能够通过这个Binder对象和它进行通信;
       五. Step 28 - Step 35:ActivityManagerService通过Binder进程间通信机制通知ActivityThread,现在一切准备就绪,它可以真正执行Activity的启动操作了。
分享到:
评论

相关推荐

    Android一个程序启动另一个程序

    在Android系统中,一个应用程序(App)启动另一个应用程序是通过Intent机制实现的。Intent是Android系统中的一个核心组件,它用于在组件之间传递消息,包括启动新的Activity、Service或者BroadcastReceiver。在这里...

    应用程序无法启动,因为应用程序的并行配置不正确 的原因及解决办法

    标题 "应用程序无法启动,因为应用程序的并行配置不正确" 是一个常见的错误提示,通常出现在Windows操作系统中,当用户尝试运行某些依赖于特定版本的.NET Framework或其他组件的应用程序时。这个错误表明应用程序的...

    windows服务启动另外一个应用程序

    标题“Windows服务启动另外一个应用程序”指的是如何在Windows服务中启动一个具有GUI界面的程序,这是一个相对复杂的操作,因为服务通常运行在不同的会话(Session 0)中,而用户应用程序则运行在用户的会话中...

    每日提醒程序定时启动应用程序运行环境VC

    在这个场景中,"每日提醒程序"是一个能够自动在特定时间启动应用程序的工具,而“运行环境VC”则意味着该程序依赖于Microsoft Visual C++运行时库来执行。下面我们将详细探讨这些知识点。 首先,"每日提醒程序"是一...

    c++ (源码)通过dll启动应用程序(exe)

    dlleg项目——一个dll,接受参数,启动一个应用程序(exe),并且给该exe文件传递两个参数。 testExe项目——接收dll传递过来的参数。(在***App里面) 需要这些功能朋友可以作为参考。

    [VS2005]解决“由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题”

    拷贝到我同事机器上,双击突然出现了“由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题“,这个问题很让我意外,以前只出现过缺少DLL的情况,而这次出现这个问题,让我一时没办法...

    CS启动外部应用程序

    当启动应用程序时,会启用事件提升功能,并注册一个事件处理程序来响应应用程序退出事件。这种方法更加灵活,可以在应用程序退出后执行更多的自定义操作。 ```csharp private void button4_Click(object sender, ...

    exe应用程序无法启动的配置文件

    exe应用程序无法启动,因为应用程序的并行配置不正确。有关详细信息,请参阅应用程序事件日志,或使用命令行 sxstrace.exe 工具

    启动界面应用程序

    "启动界面应用程序"就是这样一个概念,它是指在主应用程序加载之前展示的一个短暂的窗口,通常显示公司LOGO、进度条或者一些加载信息,以告知用户程序正在初始化。在本案例中,我们将关注如何在MFC(Microsoft ...

    获取Android所有应用程序列表,点击某一项时可启动相应应用

    在Android开发中,获取系统所有应用程序列表并实现点击启动应用是一项常见的需求,这通常涉及到对Android系统的应用管理和Intent机制的理解。下面将详细讲解这个过程。 首先,我们需要理解Android权限。在...

    程序自启动,隐藏应用程序图标和窗口

    程序自动启动是指在系统启动时自动启动应用程序。要实现这个功能,可以使用Launch Agent和Launch Daemon。Launch Agent和Launch Daemon都是系统启动时自动启动的进程,但它们之间有所不同。Launch Agent是用户登录时...

    WPF单实例应用程序-一次打开一个exe

    在Windows Presentation Foundation(WPF)应用开发中,有时我们需要确保应用程序只能运行一个实例,即实现“单实例应用程序”。这样的设计可以防止用户意外打开多个相同的应用程序窗口,保持系统资源的有效利用。本...

    windows11 win11免登陆自动启动应用程序/软件

    ### Windows 11 自动启动应用程序的设置方法 在日常工作中,我们经常遇到服务器自动重启后,部署在服务器上的服务未能自动启动的情况。这不仅增加了维护成本,还可能造成服务中断的风险。对于Windows 11操作系统而...

    winfrom Windows服务监控exe进程,启动exe窗体应用程序

    本话题关注的是如何通过C#编程,让一个WinForm应用程序(Windows服务)监控另一个exe进程,并在需要时启动该exe的窗体应用。 首先,让我们深入理解每个组件: 1. **WinForm**: WinForm是.NET Framework提供的一种...

    c++ 快速启动应用程序

    本项目“c++ 快速启动应用程序”旨在利用C++编程技术创建一个便捷的工具,帮助用户快速访问和启动常用软件,从而提高工作和生活效率。 首先,我们来了解一下C++的基本概念。C++是C语言的扩展,它引入了类、模板、...

    使用QProcess启动并嵌入带界面应用程序

    在做系统集成框架软件时,经常遇到需要将已有程序的界面嵌入到统一框架软件的情形,该示例程序演示了在Qt5平台下面,使用QProcess启动并嵌入带界面应用程序的方法。该方法在Windows、Linux等操作系统下测试通过,...

    自定义协议从浏览器中启动本地应用程序

    在IT领域,自定义协议是一种常见且强大的技术,它允许我们通过特定的字符串或URL模式启动本地应用程序。这种技术在很多场景下都有应用,比如在Web应用与桌面应用的交互、移动应用的深度链接等。本文将深入探讨如何...

    解决“由于应用程序配置不正确,应用程序未能启动...”的问题

    标题中的问题“由于应用程序配置不正确,应用程序未能启动…”通常是由于C++运行时库缺失或者版本不匹配导致的。在Windows系统中,许多应用程序依赖于Microsoft Visual C++ Redistributable包来运行,这些包提供了...

Global site tag (gtag.js) - Google Analytics