Android AMS——创建APP进程(五)

news/2024/7/24 3:11:30 标签: android

         接上一篇,在 ActivityTaskSupervisor 中会判断进程是否存在,如果进程不存在,则会创建进程,执行 startProcessAsync() 方法。如果进程存在,则执行 realStartActivityLocked() 方法。在APP 的启动时,进程是不存在的。所以我们先来分析一下进程不存在的情况。

一、创建进程

1、ActivityTaskManagerService

源码位置:/frameworks/base/services/core/java/com/android/server/wm/ActivityTaskManagerService.java

startProcessAsync

void startProcessAsync(ActivityRecord activity, boolean knownToBeDead, boolean isTop, String hostingType) {
    try {
        if (Trace.isTagEnabled(TRACE_TAG_WINDOW_MANAGER)) {
            Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "dispatchingStartProcess:" + activity.processName);
        }
        // 发送消息以启动进程,以避免在持有ATMS锁的情况下调用AMS时可能出现的死锁。
        final Message m = PooledLambda.obtainMessage(ActivityManagerInternal::startProcess,
                    mAmInternal, activity.processName, activity.info.applicationInfo, 
      

http://www.niftyadmin.cn/n/5051991.html

相关文章

LabVIEW开发实时自动化多物镜云计算全玻片成像装置

LabVIEW开发实时自动化多物镜云计算全玻片成像装置 数字病理学领域正在迅速发展,这主要是由于计算机处理能力、数据传输速度、软件创新和云存储解决方案方面的技术进步。因此,病理科室不仅将数字成像用于图像存档等简单任务,还用于远程病理学…

R语言绘制环状柱状堆积图+分组+显著性

无叠加、显著性的代码: #设置工作环境 rm(listls()) setwd("D:/Desktop/0000/code-main/条形图")#加载R包 library(ggplot2) # Create Elegant Data Visualisations Using the Grammar of Graphics library(tidyverse) # Easily Install and Load the Ti…

k8s安装与使用

一、Docker安装 注意docker的版本要和k8s版本对应 https://blog.csdn.net/Myx74270512/article/details/128235051 二、k8s安装 更新yum sudo yum update添加Kubernetes的yum源 sudo vi /etc/yum.repos.d/kubernetes.repo## 添加如下内容 [kubernetes] nameKubernetes bas…

python 多个proto文件import引用时出现ModuleNotFoundError错误

问题描述 my_proto文件夹里有两个proto文件,book.proto想要引用person.proto文件中的Person,如下 book.proto syntax "proto2";import "person.proto"; // 导入person.proto文件message Book {optional string name 1;optional …

开源一个基于的rt-thread系统的烟感采集系统

一、硬件 CPU:stm32f401 NBIOT模块:移远BC26 存储:W25Q128JVSIQTR 扩展:HC595输出,165输入 二、软件应用 FAL:分区 littlefs: 应用存储用的文件系统 EashFlash:日记存储、系统变量存储 kawaii_…

高等数学应试考点速览(下)

函数项级数 【收敛域】上,收敛于:【和函数】; 幂级数:绝对收敛区间 ( − R , R ) (-R,R) (−R,R),(端点是否属于收敛域,需要再探讨) R lim ⁡ n → ∞ ∣ a n a n 1 ∣ R\lim_{n…

GoLang 百行代码实现小项目《家庭收支软件》

界面显示 实现思路 GoLang 百行代码实现的小项目《家庭收支软件》是一个简单的家庭收支记账软件,可以通过命令行界面记录和显示收支明细。 在代码中,定义了两个结构体类型:record(代表一条收支记录)和software&#…

组合数4 高精度计算组合数

一般来说需要高精乘和高精除&#xff0c;但化简为质因子形式后只用高精乘。 一个阶乘n中因子p的个数&#xff1a; #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define endl \nusing namespace std;typedef pair<int, int&…