zoukankan      html  css  js  c++  java
  • Android应用程序启动过程(一)总结

    一.App启动方式

    1,冷启动

    冷启动:当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用。

    冷启动的特点:因为系统会重新创建一个新的进程分配给它,所以会创建和初始化Application,在创建和初始化它的Launch Activity(onCreate onMesure onLayout,ondraw),最后展示在界面上

    2.热启动
    热启动:当启动应用时,后台存在该应用的进程(back键,home键,应用退出,但是没有销毁),从已有的进程中启动

    热启动的特点:从已有的进程中启动,不需要创建和初始化Application ,直接创建和初始化它的Launch Activity

    两者区别:后台进程是否存在相应的进程,创建进程是耗时操作

    二.应用的启动过程

    主要讲解冷启动的情况(分配进程->创建和初始化Application->创建和初始化Launch Activity)

    App启动过程就是:

    一. Step1 - Step 11:
    Launcher通过Binder进程间通信机制通知ActivityManagerService,
    它要启动一个Activity;
    
    二. Step 12 - Step 16:
    ActivityManagerService通过Binder进程间通信机制通知Launcher进入Paused状态;
    
    三. Step 17 - Step 24:
    Launcher通过Binder进程间通信机制通知ActivityManagerService,它已经准备就绪进入Paused状态,
    于是ActivityManagerService就创建一个新的进程,用来启动一个ActivityThread实例,
    即将要启动的Activity就是在这个ActivityThread实例中运行;
    
    四. Step 25 - Step 27:
    ActivityThread通过Binder进程间通信机制将一个ApplicationThread类型的Binder对象传递给ActivityManagerService,
    以便以后ActivityManagerService能够通过这个Binder对象和它进行通信;
    
    五. Step 28 - Step 35:
    ActivityManagerService通过Binder进程间通信机制通知ActivityThread,
    现在一切准备就绪,它可以真正执行Activity的启动操作了。
    

      

  • 相关阅读:
    未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”
    未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包
    重装VS2010时出现未能正确加载 "radlangsvc.package,radlangsvc.vs...
    page.Response.WriteFile(newpath);
    Response.ContentType 详细列表 <转>
    创建存储过程,使用游标更新表信息
    淘宝顶端的通知样式 .
    ssm整合各配置文件
    XSS-Labs(Level1-10)
    局域网技术
  • 原文地址:https://www.cnblogs.com/ganchuanpu/p/6234744.html
Copyright © 2011-2022 走看看