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

      

  • 相关阅读:
    Python 写Windows Service服务程序
    关于Python 获取windows信息收集
    Pyqt 获取windows系统中已安装软件列表
    Python 打开目录与指定文件
    【转载】Pyqt 编写的俄罗斯方块
    Python win32api提取exe图标icon
    Pyqt QListWidget之缩略图列表
    Pyqt 时时CPU使用情况
    Python 的三目运算
    Chrome Crx 插件下载
  • 原文地址:https://www.cnblogs.com/ganchuanpu/p/6234744.html
Copyright © 2011-2022 走看看