• Launcher 是一个应用进程,用来显示系统中已经安装的应用程序
  • Launcher 在启动过程中会请求 PackageManagerService 返回系统中已经安装的应用程序信息,并将这些信息封装成一个快捷图标显示在系统屏幕上,这样用户就能点击这些快捷图标来启动相应的应用程序。
  • 通俗的将,Launcher 就是 Android 的系统桌面,主要是用来
  • 作为 Android 系统的启动器,用于启动应用程序
  • 作为 Android 系统的桌面,用于显示管理应用进程的快捷图标和其他桌面组件
  • 启动过程介绍

  • SystemServer 进程会在启动过程中去启动 PackageManagerService
  • PackageManagerService 会将系统中的应用进程安装完成
  • 再此之前已启动的 ActivityManagerService 会将 Launcher 启动起来
  • 启动 Launcher

  • ActivityManagerService 启动 Launcher
  • systemReady() 实现
  • resumeFocusedStackTopActivityLocked() 函数实现
  • ActivityStack 调用保存过程
  • ActivityStackSupervisor 调用过程
  • ActivityManagerService 调用过程
  • mFactoryTest 代表系统的运行模式,系统运行模式分为三种,分别是非工厂模式、低级工厂模式和高级工厂模式
  • mTopAction用于描述第一个被启动Activity组件的Action,默认值为Intent.ACTION_MAIN。
  • 判断 Action == Intent.ACTION_MAIN && Category == Intent.CATEGORY_HOME 的进程是否启动
  • AndroidMainfest.xml
    程序的属性在文件 AndroidManifest.xml 文件中标注。 如下方的 Launcher 进程属性文件所示
  • intent-filter 标签中,匹配了 action 为 android.intent.action.MAIN ,category 匹配为 category.HOME
  • 设置了 android.intent.category.HOME 后,关键字 android:name="com.android.launcher3.Launcher" 就变成了主 Activity
  • Launcher 中应用图标的显示过程

  • Launcher是用工作区的形式来显示系统安装的应用程序的快捷图标的,每一个工作区都是用来描述一个抽象桌面的,它由n个屏幕组成,每个屏幕又分为n个单元格,每个单元格用来显示一个应用程序的快捷图标。
  • onCreate() 初始化类
  • setLaunchr()
  • startLoader()
  • LoaderTask
  • 至此,Android 启动,应用程序显示在界面上。