首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

笔记:Activity启动过程

Launcher启动App 任何安装的应用几乎都是点击桌面上的图标被启动。 接下来以Launcher程序启动一个App的过程作为案例。...Task和Back Stack 即便没有了解过Activity启动过程、ActivityManagerService(简称AMS,它是运行在系统进程SystemServer中的系统关键服务)这些知识点...启动过程跟踪 自己的App会运行在一个包名对应的进程中,这点常识这里不去解释。 MainActivity是Launcher启动的,而Launcher是通过AMS来启动MainActivity的。...它们分别运行在不同的进程中,整个过程中它们之间使用Binder完成跨进程通信。 NOTE:源代码为android系统2.3。 下面是完整的过程,非重要部分会很简单地描述下,保证流程完整性。...如果延迟时间后新启动的App进程未通知AMS它启动完成,否则AMS不再继续处理MainActivity的启动。 阶段5 接下来就是android应用程序进程启动过程

1.3K80

【Android 启动过程Activity 启动源码分析 ( Activity -> AMS、主线程阶段 )

文章目录 一、Activity 启动源码分析 ( Activity -> AMS 阶段 ) 一、Activity 启动源码分析 ( Activity -> AMS 阶段 ) ---- 调用 startActivity...(new Intent()); 方法启动 Activity , 调用方法原型如下 : public class Activity extends ContextThemeWrapper...因为这个额外的 * 信息,{@link Intent#FLAG_ACTIVITY_NEW_TASK}启动标志不可用 * 必修的;如果未指定,则新活动将添加到 * 调用方的任务...例如,如果您选择的活动 * 如果启动使用{@link Intent#FLAG_ACTIVITY_NEW_TASK},则不会 * 运行您的任务,您将立即收到取消结果。...如果使用requestCode调用startActivityForResult() * >=0,在初始的onCreate(Bundle savedInstanceState)/onResume()过程

2.5K30

【Android 启动过程】Android 应用启动流程 | Activity 启动流程

文章目录 一、Android 系统启动流程 二、Activity 启动流程 一、Android 系统启动流程 ---- 打开 Android 手机电源键后 , 先运行 BootLoader , 然后使用...启动流程 ---- Android 应用启动方式有 2 种 , 分为冷启动和热启动 ; 冷启动 : 后台没有应用进程 , 需要先创建进程 , 然后启动 Activity ; 热启动 : 后台有应用进程..., 不创建进程 , 直接启动 Activity ; Activity 启动一般分为 3 个阶段 , 以 Activity A 中启动 Activity B 为例 : 阶段 1 : Activity...启动消息 , 调用 ActivityThread 中的相关代码创建 Activity B ; 阶段 3 : 在应用 ActivityThread 主线程中 , 启动 Activity B 页面 ;...简要流程 : Activity A -> ActivityManagerService -> ActivityThread -> Activity B ; 在 Launcher 应用中启动 Activity

3.9K10

【Android 启动过程Activity 启动源码分析 ( ActivityThread -> Activity、主线程阶段 一 )

TransactionExecutor execute -> executeCallbacks 方法 四、LaunchActivityItem.execute 总结 前言 上一篇博客 【Android 启动过程...】Activity 启动源码分析 ( AMS -> ActivityThread、AMS 线程阶段 二 ) 分析到 , 在 AMS 进程通过 Binder 机制调用 ActivityThread 中的..., 并启动Activity ; 一、ClientTransactionHandler.scheduleTransaction ---- 在 ClientTransactionHandler.scheduleTransaction...mTransactionExecutor = new TransactionExecutor(this) 成员的 mTransactionExecutor.execute(transaction) 方法 , 执行事务的过程...就是 ActivityThread , 最终调用的是 ActivityThread 的 handleLaunchActivity 方法 ; /** * 请求启动 Activity

50810

Activity 启动过程的简单分析

这篇文章主要是配合源码简单的介绍一下,程序的加载过程Activity 中布局的加载过程,能够大体的了解整个过程。不过过度的追究细节,因为里面任何一个细节可能都够你研究一段时间的!...先了解掌握大体过程,再慢慢来! 开始启动 我们都知道,Activity 是有生命周期的,onCreate()、onStart() 、onResume 等等那么这些方法是如何调用的呢?...说了这么多,无非是大体了解了这个启动过程。知道 Activity 在执行生命周期前是先调用 attach 方法的。...其中 attach 方法内的一些代码是很关键的,和整个 Activity启动有很重要的关系,下面来看一下 attach 方法的源码: // 这个方法存在于 Activity 类中 final...感兴趣的可以看一下源代码,其实分析到这里就可以得出结论了(这个结论仅仅是 measure 这一部分的结论) 后面再从 Activity启动一块串联起来!

43210

Activity启动过程详解(基于10.0源码)

我们最常接触也是用户直接感受到的就是Activity了,今天来就说说Android启动的执行过程和工作原理。 Activity是一种 展示型组件,用于展示给用户一个可以交互的页面。...在开发层面,要启动一个Activity可以使用Intent,分显式和隐式,并且还可以设置Activity启动模式。 Android系统对四大组件都做了很大程度的封装,这样我们可以快速使用组件。...(intent); 这样就可以启动TestActivity了,那么问题来了, 这个代码是如何启动一个Activity的?...、ActivityStackSupervisor 对 Activity任务、activity栈、Activity记录 管理后,又用过跨进程把正在启动过程又转移到了客户端。...总结 关于Activity启动的流程的讲解,我们分成了几个阶段:启动的发起、AMS的管理、线程切换、启动核心实现,知道了启动过程经历了两次IPC,客户端到AMS、AMS到客户端,以及Activity创建和生命周期的执行

2.7K20

【Android 启动过程Activity 启动源码分析 ( ActivityThread 流程分析 二 )

ActivityStackSupervisor.attachApplicationLocked 三、ActivityStackSupervisor.realStartActivityLocked 前言 在上一篇博客 【Android 启动过程...】Activity 启动源码分析 ( ActivityThread 流程分析 一 ) 分析了从 ActivityThread 的 main() 函数启动 , ApplicationThread 绑定 ,...ActivityStackSupervisor.java ; 三、ActivityStackSupervisor.realStartActivityLocked ---- 该方法步骤在 【Android 启动过程...】Activity 启动源码分析 ( AMS -> ActivityThread、AMS 线程阶段 二 ) 二、AMS 进程中执行的相关操作 章节进行过讲解 , 不管是冷启动 , 还是热启动 , 都要调用...r.setVisibility(true); } try { // 下面的代码是启动 Activity 的核心代码

30110

Activity启动流程

Activity启动流程很多文章都已经说过了,这里说一下自己的理解。 Activity启动流程分两种,一种是启动正在运行的app的Activity,即启动Activity。...如无特殊声明默认和启动activityactivity处于同一进程。如果有声明在一个新的进程中,则处于两个进程。另一种是打开新的app,即为Launcher启动新的Activity。...后边启动Activity的流程是一样的,区别是前边判断进程是否存在的那部分。 Activity启动的前提是已经开机,各项进程和AMS等服务已经初始化完成,在这里也提一下那些内容。...每个应用程序都是运行在各自的Dalvik虚拟机中,应用程序每次运行都要重新初始化和启动虚拟机,这个过程会耗费很长时间。...IPC过程: 双方都是通过对方的代理对象来进行通信。

80440

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券