Android Activity启动流程○

1.Activity的启动

Android系统启动的过程:打开Android手机电源键后,先运行BootLoader,由BootLoader加载Linux内核,之后会启动init进程,init进程会启动Zygote进程,Zygote进程会调用system_server进程,system_server进程会拉起PMS和AMS。AMS会启动Launcher应用,Launcher应用就是Android的桌面应用,用来显示各个应用图标。当用户点击某一个app图标时就会fork一个新的进程,然后启动Activity。

而启动一个Activity,通常有两种情况,一种是在应用内部通过startActivity启动,另一种是通过Launcher启动。

Activity的启动要经过多次IPC,涉及Activity(或Launcher)、AMS、Zygote、新启动的app这4个进程,通过这四个进程的多次IPC通信最终启动一个App,然后启动它的Activity。

Android Activity启动流程○_第1张图片

点击桌面图标,Launcher会启动程序默认的Activity,这个过程是在Launcher进程中进行的。然后通过binder进入ATMS,在ATMS中为应用的第一个activity创建ActivityRecord,找到其ActivityStack,将ActivityRecord插入到所在的TaskRecord的合适位置。然后通过ActivityManagerInternal::startProcess进入AMS,请求创建应用进程ÿ

你可能感兴趣的:(笔记,android)