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

      

  • 相关阅读:
    C#如何为程序打包发布应用(图解教程) (转)
    异步委托与多线程
    如何判断自己的WP7 SDK版本
    (转)c#实现WinRAR解压缩
    网页HTML代码大全
    byte[] ,image, bitmap之间的转换
    MS开发者应懂得知识
    StringFarmat控制字符串居中显示
    WP7模拟器的感应器和GPS模拟定位功能
    lucene.net搜索文档(pdf,doc,txt)内容
  • 原文地址:https://www.cnblogs.com/ganchuanpu/p/6234744.html
Copyright © 2020-2023  润新知