美文网首页
App 启动流程

App 启动流程

作者: 北雁南飞_8854 | 来源:发表于2021-05-05 15:52 被阅读0次
    image.png
    1. 点击桌面APP图标时,Launcher的startActivity()方法,通过Binder通信,调用system_server进程中AMS服务的startActivity方法,发起启动请求
    2. system_server进程接收到请求后,向Zygote进程发送创建进程的请求
    3. Zygote进程fork出App进程,并执行ActivityThread的main方法,创建ActivityThread线程,初始化MainLooper,主线程Handler,同时初始化ApplicationThread用于和AMS通信交互。
    4. App进程,通过Binder向sytem_server进程发起attachApplication请求,这里实际上就是APP进程通过Binder调用sytem_server进程中AMS的attachApplication方法,上面我们已经分析过,AMS的attachApplication方法的作用是将ApplicationThread对象与AMS绑定
    5. system_server进程在收到attachApplication的请求,进行一些准备工作后,再通过binder IPC向App进程发送IApplicationThread的bindApplication请求。
    6. App进程的binder线程(ApplicationThread)在收到请求后,通过handler向主线程发送BIND_APPLICATION和LAUNCH_ACTIVITY消息,LAUNCH_ACTIVITY調用handleLaunchActivity-> performLaunchActivity-> mInstrumentation.callActivityOnCreate启动Activity。
    7. 到此,App便正式启动,开始进入Activity生命周期,执行完onCreate/onStart/onResume方法,UI渲染后显示APP主界面。

    相关文章

      网友评论

          本文标题:App 启动流程

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