美文网首页
Android系统冷启动

Android系统冷启动

作者: eagle006 | 来源:发表于2023-01-03 22:05 被阅读0次

    一.android系统冷启动流程分为以下几个部分:

    1、启动电源以及系统启动

    2、引导程序BootLoader

    3、Linux内核启动

    4、init进程启动

    5、Zygote进程启动

    6、SystemServer进程启动

    7、Launcher启动

    二、app启动流程

    1、启动APP进程: 当我们点击Launcher桌面程序的APP图标时,Launcher程序会调用startActivity()函数,通过Binder跨进程通信,发送消息给system_server进程。在system_server进程中,由AMS通过socket通信告知Zygote进程fork出一个子进程(APP进程)。

    2、开启APP主线程: APP进程启动后,会实例化一个ActivityThread,并执行其main函数,同时会创建ApplicationThread、Looper、Handler对象,开启主线程消息循环Looper.loop()。

    3、创建并初始化Application和Activity: ActivityThread的main函数通过调用attach方法进行 Binder 通信,通知system_server进程执行AMS的attachApplication方法。在attachApplication方法中,AMS分别通过bindApplication、scheduleLaunchActivity方法,通知APP进程的主线程Handler,对APP进程的Application和Activity进行初始化,并执行Application、Activity的生命周期。

    4、UI布局和绘制: 主线程Handler初始化Activity时,会执行创建PhoneWindow、初始化DecorView的操作,并且添加布局到DecorView的ContentView中。ContentView,对应着Activity的setContentView中设置的layout.xml布局文件所在的最外层父布局。

    相关文章

      网友评论

          本文标题:Android系统冷启动

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