Launcher概述
Android系统启动最后一步是启动一个Home应用程序,这个应用程序用来显示系统中已经安装的应用程序,这个Home应用程序就叫做Launcher。应用程序Launcher在启动过程中会请求PackageManagerService返回系统中已经安装的应用程序的信息,并将这些信息封装成一个快捷图标列表显示在系统屏幕上,这样用户可以通过点击这些快捷图标来启动相应的应用程序
启动过程
Code path :frameworks\base\services\java\com\android\server\SystemServer.java的startOtherServices方法
Code path : frameworks\base\services\core\java\com\android\server\wm\ActivityTaskManagerInternal.java
Code path : frameworks\base\services\core\java\com\android\server\wm\ActivityTaskManagerService.java
调用关系链: SystemServer-> startOtherServices()->systemReady()->ActivityTaskManagerInternal->resumeTopActivities()->
ActivityTaskManagerService-> resumeTopActivities()-> RootWindowContainer. resumeFocusedStacksTopActivities()
Code path: frameworks\base\services\core\java\com\android\server\wm\RootWindowContainer.java
调用关系链: RootWindowContainer->resumeFocusedStacksTopActivities()->ActivityStack.resumeTopActivityUncheckedLocked()
Code path:frameworks\base\services\core\java\com\android\server\wm\ActivityStack.java
startHomeTaskDisplayArea中的getHomeIntent,获取对应的Launcher配置信息,去拉起Home进程
Code path: frameworks\base\services\core\java\com\android\server\wm\ActivityTaskManagerService.java
通过Intent.CATEGORY_HOME配置对应的Home参数,进而通过startHomeActivity拉起Launcher进程,
至此laucher进程启动结束