1.Android启动流程
init 是用户态的第一个进程
zygote 是Android的孵化进程
-
zygote进程启动过程
-
SystemServer进程启动过程
-
SystemServer进程处理过程
2.AMS(ActivityManagerService)介绍
- AMS是什么?
- 从java角度来看,ams就是一个java对象,实现了Ibinder接口,所以它是一个用于进程之间通信的接口,这个对象初始化是在systemServer.java 的run()方法里面
public Lifecycle(Context context) {
super(context);
mService = new ActivityManagerService(context);
}
- AMS是一个服务
- AMS是什么?
- 从java角度来看,ams就是一个java对象,实现了Ibinder接口,所以它是一个用于进程之间通信的
接口,这个对象初始化是在systemServer.java 的run()方法里面 - AMS是一个服务
ActivityManagerService从名字就可以看出,它是一个服务,用来管理Activity,而且是一个系统服务,
就是包管理服务,电池管理服务,震动管理服务等。 - AMS是一个Binder
ams实现了Ibinder接口,所以它是一个Binder,这意味着他不但可以用于进程间通信,还是一个线程,因为一个Binder就是一个线程。
-
AMS启动流程