Android进阶(一): Launcher启动过程

《Android进阶(一): Launcher启动过程》

1.前言

  • 最近一直在看 《Android进阶解密》 的一本书,这本书编写逻辑、流程都非常好,而且很容易看懂,非常推荐大家去看看(没有收广告费,单纯觉得作者写的很好)。
  • 今天就将 Launcher 系统启动过程 总结一下(基于Android 8.0 系统)。
  • 文章中实例 linhaojian的Github

2.Launcher 系统简易启动过程

《Android进阶(一): Launcher启动过程》 Luancher简易流程.png

3.各部分说明

3.1 启动电源以及系统启动

  • 电源按下时引导芯片代码从预定义的地方(ROM)开始执行,加载引导程序BootLoader到RAM,然后执行。

3.2 引导程序BootLoader

  • 引导程序BootLoader是在Android操作系统开始运行前的一个小程序,它的主要作用是把系统OS拉起来并运行。

3.3 Linux内核启动

  • 内核启动是,设置缓存、被保护存储器、计划列表、加载驱动。当内核完成系统设置时,它首先在系统文件中寻找init.rc文件,并启动init进程。

3.4 init进程启动

  • 初始化和启动属性服务,并且启动Zygote进程。

3.5 Zygote进程启动

  • 创建Java虚拟机并为Java虚拟机注册JNI方法;创建服务器端的Socket;启动SystemServer进程;创建应用程序的进程。

3.6 SystemServer进程启动

  • 启动Binder线程池和SystemServiceManager,并且启动各种系统服务(引导服务核心服务其他服务)。

引导服务:ActivityManagerService、PowerManagerService、PackageManagerService、Sensor….
核心服务:DropBoxManagerService、BatteryService、UsagerStatsService、WebViewUpdateService。
其他服务:CameraService、AlarmManagerService、WindowManagerService、NotificationManagerService….

3.7 ActivityManagerService

  • 启动Launcher进程;通过Socket向Zygote进程发送请教创建应用进程信息。

3.8 Launcher

  • Android系统应用;显示系统中所有已安装的应用。

3.9 LauncherModel

  • 加载系统已经安装的应用程序信息。

3.10 AllAppsContainerView

  • 显示APP列表。

4.总结

  • 到此,简单把系统应用Launcher启动过程介绍完毕。
  • 如果喜欢我的分享,可以点击 关注 或者 ,你们支持是我分享的最大动力 。
  • linhaojian的Github

欢迎关注linhaojian_CSDN博客或者linhaojian_简书

不定期分享关于安卓开发的干货。

写技术文章初心

  • 技术知识积累
  • 技术知识巩固
  • 技术知识分享
  • 技术知识交流
    原文作者:Linhaojian
    原文地址: https://www.jianshu.com/p/10fae9816be4
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞