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的启动操作了。
    

      

  • 相关阅读:
    让linux下的eclipse支持GBK编码
    Ubuntu 14.04 安装深度音乐的方法(下载速度极慢未成功)
    wine使用
    Sql语句查看表结构
    读数据库所有表和表结构的sql语句
    详解软件工程之软工文档
    浅谈UML的概念和模型之UML九种图
    HTML5 file api读取文件的MD5码工具
    Sublime Text 3 快捷键汇总
    领域驱动设计系列文章汇总
  • 原文地址:https://www.cnblogs.com/ganchuanpu/p/6234744.html
Copyright © 2011-2022 走看看