美文网首页android开发专题Activity启动流程
Android进阶(一): Launcher启动过程

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

作者: Linhaojian | 来源:发表于2018-12-02 22:47 被阅读91次

    1.前言

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

    2.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_简书

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


    写技术文章初心

    • 技术知识积累
    • 技术知识巩固
    • 技术知识分享
    • 技术知识交流

    相关文章

      网友评论

        本文标题:Android进阶(一): Launcher启动过程

        本文链接:https://www.haomeiwen.com/subject/kpeiqqtx.html