Activiity跳转startActivity源码分析Activity启动流程(下)

news2024/12/23 14:53:53

调用ActivityThread子类ClientTranslationHandler的scheduleTranslation
在这里插入图片描述
注意上图有个sendMessage的
在这里插入图片描述接着会执行translacationExecutor的execute方法。
在这里插入图片描述都会走cycleToPath方法
在这里插入图片描述cycleToPath方法对应的performLifecycleSequence 调用Actvitiy各个生命周期。
在这里插入图片描述然后是第二种情况,新启动一个App应用的Activity:调用了AMS的.startProcessLocked方法

在这里插入图片描述
调用了自己的startProcess方法在这里插入图片描述然后调用了 Process.start方法,开启一个进程。
在这里插入图片描述
zygoteProcess.start开始工作

在这里插入图片描述
最终会调用到zygoteSendArgsAndGetResult(openZygoteSocketIfNeeded(abi), argsForZygote)这行代码,这行代码主要用来打开Socket和Zygote进程通信,然后向Zygote进程发送参数,获取结果。这样Zygote进程就会fork出一个应用进程,然后执行应用进程的入口函数也就是我们熟悉的ActivityThread.main()函数。
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
然后会接着调用attach方法

在这里插入图片描述
这样就会调用 AMS的attachApplication在这里插入图片描述最终会调用 1.ActivityThread applicationthread的bindApplication(然后我们进入bindApplication细节看看)
在这里插入图片描述
在这里插入图片描述bindApplication方法会sendMessage 一个H.BIND_APPLICATION
在这里插入图片描述
那它会到handleBindApplication方法里面
在这里插入图片描述然后就是application的创建和oncreate方法的调用
在这里插入图片描述2.还有他还调用了ActivityStackSupervisor的 attachApplicationLocked

在这里插入图片描述我们终于又看到了realStartActivityLocked,然后就和我们之前分析的realStartActivityLocked完后走加载activity一样了。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/825285.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

效率提升丨大学必看校园安全实用技巧

在当今社会,教育是培养人才、传承文明的重要场所。然而,教学楼作为学生、教师和员工活动的核心区域,也存在着潜在的安全隐患,其中最为突出的风险之一是火灾。火灾不仅危及生命财产,还可能给整个学校带来不可估量的损失…

五个BLOCK问题

block的原理是怎样的?本质是什么? 一个含有自动变量的匿名函数 Block 的本质是一个封装了函数及其调用环境的 Objective-C 对象 一个 block 实际是一个对象,它主要由一个 isa 和 一个 impl 和 一个 descriptor 组成。 是封装了函数代码以…

华为OD面试总结和建议:全程线上面试的经验分享

目录 导语一、准备工作:二、面试前:三、面试过程:1. 视频面试技巧:2. 技术问题准备: 四、面试后:结束语 导语 导语:随着技术的发展,线上面试在招聘过程中扮演着越来越重要的角色。作…

11万多英藏对照词典英藏翻译ACCESS\EXCEL数据库

今天继续发一个藏文藏语相关的翻译数据库,即英藏对照词典,加上《5万6千多藏文词典解释ACCESS数据库》以及昨天发的《近13万汉藏对照词典汉藏翻译ACCESS\EXCEL数据库》藏文类的数据就算较全了。 截图下方有显示“共有记录数”,截图包含了表的所…

js方法:toLocaleString()

js中的toLocaleString()方法用于将数字转换为本地化的字符串表示形式。 语法: number.toLocaleString([locales [, options]]) locales(可选):一个字符串、字符串数组,表示要使用的语言或一组语言。例如,&…

拍立淘是如何实现的?

淘宝拍立淘功能是很多网购的网民经常会用到的一个功能。拍立淘的图片搜索商品列表接口功能是指用户可以通过上传一张商品图片,拍立淘会根据该图片进行识别和匹配,以找到与该图片相似或相同的商品,并将搜索到的商品列表返回给用户。以下是该接…

《深度探索c++对象模型》第五章笔记

非原创,在学习 5 构造、解构、拷贝语意学Semantics of Construction,Destruction, and Copy 考虑下面这个abstract base class声明: class Abstract_base { public:virtual ~Abstract_base() 0;virtual void interface() const 0;virtual const char*mumble() c…

Robot Framweork之UI自动化测试---分层设计

Robot Framework 的分层思想是一种测试设计和代码组织的模式,它将测试用例的实现和测试执行逻辑分离,以提高测试的可维护性、可读性和可扩展性。 一、分层思想 在实际项目中,一般分为三层:元素层,流程层,用…

异步消息传递技术 JMS AMQP MQTT

广泛使用的三种异步消息传递技术:JMS AMQP MQTT JMS AMQP MQTT JMS(Java Message Service):一个类似JDBC的规范,提供了与消息服务相关的API接口 JMS消息模型: P2P 点对点模型:消息发到一个队…

BES 平台 SDK之按键的配置

本文章是基于BES2700 芯片,其他BESxxx 芯片可做参考,如有不当之处,欢迎评论区留言指出。仅供参考学习用! BES 平台 SDK之LED的配置_谢文浩的博客-CSDN博客 关于系统LED简介可参考上一篇文章。链接如上所示! 一&…

【ONE·Linux || 基础IO(一)】

总言 文件输入与输出相关介绍:语言层面/系统层面文件调用接口举例、文件描述符、重定向说明、缓冲区理解。 文章目录 总言1、文件输入与输出1.1、预备知识1.2、语言层面:回归C语言中文件相关接口1.2.1、打开文件和关闭文件:对当前路径的理解…

企业服务器中了Locked勒索病毒后怎么办,如何解决问题并提高防范意识

科学技术的发展给我们的生活带来了极大便利,但也为企业带来了安全威胁。近期,我们收到很多企业的求助,企业的服务器中了locked后缀勒索病毒,计算机上的所有文件都被加密,无法被正常调取,严重影响了企业的正…

使用预训练 ViT 模型的图像字幕中的视觉变换器 (ViT)-附源码

介绍 使用预训练 ViT 模型的图像字幕可以被视为图像下方的文本或书面描述,旨在提供图像细节的描述。它将图像翻译成文本描述的任务。它是通过连接视觉(图像)和语言(文本)来完成的。在本文中,我们使用图像中的 Vision Transformers (ViT) 作为使用 PyTorch 后端的主要技术…

2023牛客暑假多校-5-I-The Yakumo Family

解法:考虑枚举这个区间,设这个区间异或和为w。对于左端点 ,预处理出其左侧的所有子区间异或和的和 ,表示区间上所有子区间异或和。对右侧也做同样操作预处理出,表示区间上所有子区间异或和。那么最后答案就是。最重要的就是如何求…

Linux下 Docker容器引擎基础(2)

目录 创建私有仓库 将修改过的nginx镜像做标记封装,准备上传到私有仓库 将镜像上传到私有仓库 从私有仓库中下载镜像到本地 CPU使用率 CPU共享比例 CPU周期限制 CPU 配额控制参数的混合案例 内存限制 Block IO 的限制 限制bps 和iops 创建私有仓库 仓库&a…

【数据结构|二叉树遍历】递归与非递归实现前序遍历、中序遍历、后序遍历

递归与非递归实现二叉树的前序遍历、中序遍历、后序遍历。 二叉树图 定义 前序遍历(Preorder Traversal): 前序遍历的顺序是先访问根节点,然后按照先左后右的顺序访问子节点。对于上面的二叉树,前序遍历的结果是&…

IO流中「线程」模型总结

一、基础简介 在IO流的网络模型中,以常见的「客户端-服务端」交互场景为例; 客户端与服务端进行通信「交互」,可能是同步或者异步,服务端进行「流」处理时,可能是阻塞或者非阻塞模式,当然也有自定义的业务…

12.其他事件

12.1 页面加载事件 加载外部资源(如图片、外联CSS和JavaScript等)加载完毕时触发的事件 1.事件名:load ●监听页面所有资源加载完毕: ➢给window添加load事件 //页面加载事件 window.addEventListener( load, function () { //…

java后端富文本转word,再传递到浏览器下载。

思路参考,以及所有的工具类都使用了》牧羊人大佬的代码《 有帮助的话不用给到我点赞,给大佬点赞即可 这是前端代码,必须使用get。 post后端返回的流浏览器接收不到(具体原因不详)。get无法传递requestBody,…

Python实现GA遗传算法优化BP神经网络分类模型(BP神经网络分类算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 遗传算法(Genetic Algorithm,GA)最早是由美国的 John holland于20世…