启动一个应用无非都是通过这个startActivity()函数来完成,通常我们启动一个app都是在桌面点击Launcher图标,大概流程主要是以下几个步骤:
1.Launcher通过Binder进程间通信机制通知ActivityManagerService,它要启动一个Activity。
2.ActivityManagerService通过Binder进程间通信机制通知Launcher进入Paused状态。
3.Launcher通过Binder进程间通信机制通知ActivityManagerService,它已经准备就绪进入Paused状态,于是ActivityManagerService就创建一个新的进程,用来启动一个ActivityThread实例,要启动的Activity在ActivityThread实例中。
4.ActivityThread通过Binder进程间通信机制将一个ApplicationThread类型的Binder对象传递给ActivityManagerService,以便以后ActivityManagerService能够通过这个Binder对象和它进行通信。
5.ActivityManagerService通过Binder进程间通信机制通知ActivityThread,现在一切准备就绪,它可以真正执行Activity的启动操作。