Android中启动某个Activity,将先启动Activity所在的应用。应用启动时会启动一个以应用包名为进程名的进程,该进程有一个主线程,叫ActivityThread,也叫做UI线程
用户在Launcher程序(桌面启动器)开启后,点击应用图标,这时会通知ActivityManagerService启动应用入口Activity,ActivityManagerService发现这个应用还未启动,则会通知Zygote进程孵化出应用进程。然后在这个dalvik应用进程里执行ActivityThread的main方法,应用进程接下来通知ActivityManagerService应用进程已启动,ActivityManagerService保存应用进程的一个代理对象,这样ActivityManagerService可以通过这个代理对象控制应用进程,然后ActivityManagerService通知应用进程创建入口Activity的实例,并执行它的生命周期方法。
网友评论