Activity启动流程

1.ActivityManagerService(AMS):服务端对象,负责系统中所有Activity的生命周期。服务端这个概念不仅仅存在于web项目很中,在Android系统中,ams,pms,wms等系统服务属于公共服务,我们的App通过调用startActivity()并不能直接打开另外一个App,这个方法会通过一系列的调用,最后还是告诉AMS说:“我要打开这个App,我知道他的住址和名字,你帮我打开吧!”所以是AMS来通知zygote进程来fork一个新进程,来开启我们的目标App的。这就像是浏览器想要打开一个超链接一样,浏览器把网页地址发送给服务器,然后还是服务器把需要的资源文件发送给客户端的。App与AMS通过Binder进行IPC通信,AMS(SystemServer进程)与zygote通过Socket进行IPC通信

2.ActivityThread:Instrumentation的管理类,App的真正入口。当开启App之后,会调用main()开始运行,开启消息循环队列,这就是传说中的UI线程或者叫主线程。与ActivityManagerServices配合,一起完成Activity的管理工作

3.Instrumentation:操作activity的具体实现类,但是不直接提供调用方法

4.Launcher:继承于Activity,当用户点击laucher按钮的时候,实际上就是调用startActivity这个方法

5.Binder:用于ActivityThread与ActivityMangerService 进行通信

6.zygote:在Android系统里面,zygote是一个进程的名字,每一个app实际上都是一个单独的虚拟机,一个单独的进程。这些进程都是zygote的子进程

7.SystemServer:实际上也是一个进程,ActivityManagerService,PackagerManagerService,WindowManagerService都是在SystemServer的进程里开启的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值