总结--Android四大组件的工作过程(写了一个)

首先几个类说明:

TaskRecord:启动的Activity所在的栈

ProcessRecord:描述一个应用程序进程

ActivityRecord:描述一个Activity,记录一个Activity的所有信息

ServiceRecord:描述一个Service,记录一个Service的所有信息

LoadedAPK:描述已加载的APK文件,可以获取到packageInfo,等信息(清单文件)

1、根Activity的启动过程:

在应用程序进程没有创建的情况下,根Activity启动过程中会涉及到4个进程,分别是Zygote进程、Launcher进程、AMS所在进程(SyetemServer进程)、应用程序进程。它们之间的关系如下图所示

非根Activity启动只涉及到AMS所在进程(SyetemServer进程)、应用程序进程两个进程。

首先Launcher进程向AMS请求创建Activity(点击桌面图标),AMS会判断根Activity所需的应用程序进程是否存在并启动,如果不存在就会请求Zygote进程创建应用程序进程。应用程序进程启动后(先执行Applicition的onCreate方法),AMS会请求创建应用程序进程并启动Activity。

其中步骤2是通过Socket通信,步骤1/4是通过AIDL通信。

 

特别说明:

ContentProvider :当应用程序没启动时,有第三方应用通过ContentProvider访问共享数据的时候,新的应用程序进程启动的时候会先调用ContentProvider的onCreate方法后调用Application的onCreate方法,别的三个控件都是先调用Application的onCreate方法,后调用自己的onCreate方法。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值