首页 > 其他分享 >Android Activity启动过程全解析

Android Activity启动过程全解析

时间:2024-09-03 12:22:29浏览次数:13  
标签:Instrumentation App ActivityThread Activity Android 解析 AMS ApplicationThread

 https://blog.csdn.net/tenggangren/article/details/50925740
 App与AMS通过Binder进行IPC通信,AMS(SystemServer进程)与zygote通过Socket进行IPC通信。一个App的程序入口到底是什么?是ActivityThread.main()。
 1.ActivityManagerServices,简称AMS,服务端对象,负责系统中所有Activity的生命周期
 2.ActivityThread,App的真正入口。当开启App之后,会调用main()开始运行,开启消息循环队列,这就是传说中的UI线程或者叫主线程。与ActivityManagerServices配合,一起完成Activity的管理工作
 3.ApplicationThread,用来实现ActivityManagerService与ActivityThread之间的交互。在ActivityManagerService需要管理相关Application中的Activity的生命周期时,通过ApplicationThread的代理对象与ActivityThread通讯。
 4.ApplicationThreadProxy,是ApplicationThread在服务器端的代理,负责和客户端的ApplicationThread通讯。AMS就是通过该ApplicationThreadProxy代理与ActivityThread进行通信的。
 5.Instrumentation,每一个应用程序只有一个Instrumentation对象,每个Activity内都有一个对该对象的引用。Instrumentation可以理解为应用进程的管家,ActivityThread要创建或暂停某个Activity时,都需要通过Instrumentation来进行具体的操作。
 6.ActivityStack,Activity在AMS的栈管理,用来记录已经启动的Activity的先后关系,状态信息等。通过ActivityStack决定是否需要启动新的进程。
 7.ActivityRecord,ActivityStack的管理对象,每个Activity在AMS对应一个ActivityRecord,来记录Activity的状态以及其他的管理信息。其实就是服务器端的Activity对象的映像。
 8.TaskRecord,AMS抽象出来的一个“任务”的概念,是记录ActivityRecord的栈,一个“Task”包含若干个ActivityRecord。AMS用TaskRecord确保Activity启动和退出的顺序。如果你清楚Activity的4种launchMode,那么对这个概念应该不陌生。

标签:Instrumentation,App,ActivityThread,Activity,Android,解析,AMS,ApplicationThread
From: https://blog.csdn.net/wenwang88/article/details/141858190

相关文章

  • Android UI绘制流程
     UI绘制流程,Activity、Dialog、PopupWindow等--android系统的事件分发流程分为很多部分: Native层–>ViewRootImpl层–>DecorView层–>Activity层–>ViewGroup层–>View层。  其实Toast窗口和Activity、Dialog、PopupWindow有一个不太一样的地方,就是Toast窗......
  • 台球助教系统小程序源码开发与技术解析
        在当今的数字化时代,信息技术与体育运动的融合日益紧密。JAVA台球助教系统源码是一个专门为台球教学设计的多端应用系统,它不仅能够提供个性化的教学体验,还能实现多端数据同步和实时互动。本文将从技术角度出发,深入探讨该系统的特色功能、创新点及其潜在的应用前景。......
  • 基于ssm+vue基于Android的考研咨询APP的设计与实现【开题+程序+论文】
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着高等教育的普及和就业竞争的日益激烈,越来越多的学生选择继续深造,其中考研成为了众多学子的首选之路。然而,考研之路并非坦途,它要求考生具备扎实的......
  • 基于ssm+vue基于Android开发的智能音乐播放系统【开题+程序+论文】
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在数字化时代背景下,音乐已成为人们日常生活中不可或缺的一部分,它不仅能够调节情绪、缓解压力,还能丰富我们的精神世界。随着移动互联网技术的飞速发展......
  • Android设备之间UVC Gadget bulk模式无法正常打开问题
    平台:RK3588Android版本:12内核版本:Linux5.10.66问题:通过usbgadget枚举uvc设备后,使用bulk传输,连接windowsPC可用正常打开预览,连接到另外AndroidHost设备无法正常打开。如果使用isochronous方式传输则都正常。分析:连接到PC(windows)上可以正常出图,但是连接到另外一个RK3588设......
  • Android架构组件:MVVM模式的实战应用与数据绑定技巧
    Android应用开发已经逐渐变得高效且模块化,MVVM(Model-View-ViewModel)设计模式与Android架构组件的结合,无疑提升了开发者的生产力。在本指南中,我们将详细介绍MVVM模式的概念,如何在Android中实现MVVM,并结合实际操作案例让读者更好地理解与运用数据绑定技巧。1.MVVM模式......
  • Android Glide加载图片时,基于图片宽高比自动伸缩ImageView高度
    ImageView布局<ImageViewandroid:id="@+id/iv"android:layout_width="match_parent"android:layout_height="wrap_content"/>代码实现GlideUtil.java/***加载图片,支持高度伸缩*@paramcontext上下文......
  • 一文读懂蒙特卡洛算法:从概率模拟到机器学习模型优化的全方位解析
    爱德华·蒙克(EdvardMunch)的"蒙特卡洛赌场的轮盘桌"(1892)蒙特卡洛方法的起源与发展1945年,在第二次世界大战即将结束之际,一场看似简单的纸牌游戏引发了计算领域的重大突破。这项突破最终导致了蒙特卡洛方法的诞生。参与曼哈顿计划的科学家斯坦尼斯劳·乌拉姆在康复期间深入思......
  • OpenHarmony 实战开发——内核IPC机制数据结构解析
    一、前言OpenAtomOpenHarmony(以下简称“OpenHarmony”)是由开放原子开源基金会(OpenAtomFoundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。作为面向全场景、全连接、全智能......
  • Android协程的使用场景
    importkotlinx.coroutines.Dispatchersimportkotlinx.coroutines.delayimportkotlinx.coroutines.withContextsuspendfunallPlants():List<Plant>=withContext(Dispatchers.Default){delay(1500)valresult=sunflowerService.getA......