看到同一个应用程序的Activity一般都是在同一个进程中启动,事实上,Activity也可以像Service一样在新的进程中启动,这样,一个应用程序就可以跨越好几个进程了,本文就分析一下在新的进程中启动Activity的方法过程。        在Android系统中,每一个应用程序都是由一些ActivityService
转载 3月前
12阅读
原文作者:Levi_wayne特别声明:本文转载自网络,版权归作者所有,如有侵权请联系删除!在Android系统中,Activity的启动是一个非常频繁发生的过程,在Framework层中,这个过程牵涉到的模块也非常多。本文将基于Android 8.0源码,以ActivityManagerService模块(以下简称AMS)的视角来分析其过程中主要发生的行为。一. AMS中层次结构  
Activity 通讯Bundle我们可以通过将数据封装在Bundle对象中 ,然后在Intent跳转的时候携带Bundle对象bundle 本质上是使用 arrayMap实现的Bundle bundle = new Bundle(); bundle.putString("name", "chenjy"); bundle.putInt("age", 18); Intent intent = ne
此次旅程: · 行程的起点是am。am是Android中很重要的程序,读者务必要掌握它的用法。我们利用am start命令,发起本次目标Activity的启动请求。 · 接下来进入ActivityManagerServiceActivityStack这两个核心类。对于启动Activity来说,这段行程又可分细分为两个阶段:第一阶段的主要工作就是根据启动模式启动标志找到或创建Activity
一. 概述        ActivityManagerService是Android系统中一个特别重要的系统服务,也是我们上层APP打交道最多的系统服务之一。ActivityManagerService(以下简称AMS) 主要负责四大组件的启动、切换、调度以及应用进程的管理调度工作。所有的APP应用都需要与AMS
AMS是Android中比较核心的服务,所涉及的内容会比较多.我们分批次来详细梳理讲解,AMS是Android中最核心的服务,主要负责系统中四大组件的启动、切换、调度及应用进程的管理调度等工作,本文章针对Android10 ,来展开分析Android9.010逻辑差不多,本次梳理主要涉及以下几块类容AMS的创建  (后面补充)Activity的启动流程(进程存在的情况下)Activ
1. 简介AMS是Android中最核心的服务,主要负责系统中四大组件的启动、切换、调度及应用进程的管理调度等工作,其职责与操作系统中的进程管理调度模块相类似,因此它在Android中非常重要。Activity与WIndow:Activity只负责生命周期事件处理Window只控制视图一个Activity包含一个Window,如果Activity没有Window,那就相当于ServiceAM
转载 2023-07-07 10:14:34
85阅读
Activity的启动由APP端发起,通过Binder通讯进入系统端的AMS。Acitivity的启动.png一、APP端发起从APP端点击应用打开窗口调用StartActivity开始流程经过Instrumentation. execStartActivity中ActivityManager.getService()获得AMS IBinder客户端,并与AMS进行交互,进入到AMS中的start
Activity是Android应用程序的四大组件之一,负责管理Android应用程序的用户界面,一般一个应用程序中包含很多个Activity,他们可能运行在一个进程中,也可能运行在不同的进程中。我们主要通过启动在不同进程中的Activity,来分析Activity的启动流程及AMSActivity的管理逻辑。Activity启动.png有两个应用程序App1App2,在App1的Activity A中点击button 启动 App2中的Activity B。通过分析以上Activit
转载 2021-08-12 16:04:54
691阅读
背景:前面我们通过梳理了Activity启动的整个流程知道:Activity的启动主要经历如下几个阶段:发起Activity启动与AMS建立通信节点,主要是在Instrumentation类中获取AMS的Binder代理,准备通信。由应用进程切到系统进程(system_service)的AMS服务,由AMS判断应用进程是否创建,如果没有创建则AMS与Zegote进程通信创建应用进程。应用进程创建后
前面几节讲解了SystemServer的架构、启动流程以及被Zygote 进程fork的流程,这一节重点讲解ActivityManagerService -AMS 服务是如何启动的。Android 10.0系统源码取经之路——启动篇Android系统架构浅析-「Android取经之路」Android是怎么启动的-「Android取经之路」Android 10.0系统启动之init进程(
Android Fragment---跟Activity通信 方法一: 尽管Fragment是作为一个独立于Activity来实现的一个对象,并且能够在多个Activity内部使用,但是一个给定的Fragment实例直接被捆绑包含它的Activity中。特别是Fragment能够使用getActivity()方法访问Activity的实例,并且很容易执行如在Activity
转载 3月前
21阅读
一.概述Service是一个应用程序组件,它能够在后台执行一些耗时较长的操作,并且不提供用户界面。服务能被其它应用程序的组件启动,即使用户切换到另外的应用时还能保持后台运行。此外,应用程序组件还能与服务绑定,并与服务进行交互,甚至能进行进程间通信(IPC)。 比如,服务可以处理网络传输、音乐播放、执行文件I/O、或者与content provider进行交互,所有这些都是后台进行的。在Activi
原创 2022-11-22 11:11:28
1442阅读
最近研究动态加载,发现,要想做的好,涉及的面太广了,从classloader 到 android应用程序框架,都要有深刻的了解,所以开 始学习并记录一些知识。希望对大家有所帮助。以下信息基本来自网络或者,老罗的Android系统源代码情景分析。一般,Aty的启动,包含三个部分,第一个是Laucher , 第二个MainAty(程序的入口Aty),第三个是AMS(AndroidManagerServ
Activity的启动分析一、什么是Activity的启动名词解释什么是:在后面的解析过程中会遇到很多生类(单词)这里把它们列出来(其中大多数描述也是来自其他博客): ActivityMangerServices 简称AMS,服务端对象,负责系统中所有Activity的生命周期。AMS是作为管理Android系统组件的核心服务,他在SystemServer执行run()方法的时候被创建,并运行在
# Android插件:通过Activity Token实现AMS Hook 在Android开发中,插件化是一种常见的技术手段,允许我们将应用的一部分或者整个应用以插件的形式进行动态加载卸载。在实现插件化的过程中,一项重要的技术就是ActivityManagerService(AMS)的Hook。 ## 什么是AMS Hook? AMS是Android系统中的一个核心服务,负责管理应用的
原创 2023-07-22 13:56:19
190阅读
想想我们在客户端是如何启动一个Activity的 1.清单文件中声明 2.通过startActivity()启动 这里我主要想分析一下第二种启动方法,暂时不想看解析xml的源码。 直接进入Activity的startActivity()方法,进入Instrumentation的execStartActivity()方法try { ......
Android四大组件: Android四大组件分别为activity、service、content provider、broadcast receiver。一、android四大组件详解1、activity(1)一个Activity通常就是一个单独的屏幕(窗口)。(2)Activity之间通过Intent进行通信。(3)android应用中每一个Activity都必须要在Androi
序言 从我们点击屏幕上的应用icon,到该应用为你展示第一个可视界面,这个过程中,Android系统究竟做了什么操作?又涉及到哪些进程? 整个过程是相对复杂的,我们不可能花时间去琢磨透每一行源码的作用,这样会让我们迷失在源码的海洋之中。相反,我们应该重点去关注这个过程,从大的层面,去掌握这个过程。这样,进可以深入源码之洋。退可以知此原理。一、根Activity启动过程 : 1. 从Launcher
在上篇博客中说到有两种方式启动进程,其中一种就是点击Launcher界面,在点击Launcher最后也会调用Activity的startActivity方法,但是在Launcher中会调用如下代码:intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);这句代码代表启动这个Activity的时候要新建一个Task,主要在AMS中所有的Activity都是保存在
  • 1
  • 2
  • 3
  • 4
  • 5