APP启动过程

  • 上图就可以很好的说明App启动的过程
  • ActivityManagerService组织回退栈时以ActivityRecord为基本单位,所有的ActivityRecord放在同一个ArrayList里,可以将mHistory看作一个栈对象,索引0所指的对象位于栈底,索引mHistory.size()-1所指的对象位于栈顶
  • Zygote进程孵化出新的应用进程后,会执行ActivityThread类的main方法.在该方法里会先准备好Looper和消息队列,然后调用attach方法将应用进程绑定到ActivityManagerService,然后进入loop循环,不断地读取消息队列里的消息,并分发消息。
  • ActivityThread的main方法执行后,应用进程接下来通知ActivityManagerService应用进程已启动,ActivityManagerService保存应用进程的一个代理对象,这样ActivityManagerService可以通过这个代理对象控制应用进程,然后ActivityManagerService通知应用进程创建入口Activity的实例,并执行它的生命周期方法。

Android系统(116)---APP启动过程相关推荐

  1. 从源码角度看Android系统SystemServer进程启动过程

    SystemServer进程是由Zygote进程fork生成,进程名为system_server,主要用于创建系统服务. 备注:本文将结合Android8.0的源码看SystemServer进程的启动 ...

  2. 从源码角度看Android系统Zygote进程启动过程

    在Android系统中,DVM.ART.应用程序进程和SystemServer进程都是由Zygote进程创建的,因此Zygote又称为"孵化器".它是通过fork的形式来创建应用程 ...

  3. 从源码角度看Android系统init进程启动过程

    init进程是Linux系统中用户空间的第一个进程,进程号为1.Kernel启动后,在用户空间启动init进程,并调用/system/core/init.cpp中的main方法执行一些重要的工作. 备 ...

  4. Android系统完整的启动流程

    Android系统完整的启动过程,从系统层次角度可分为 Linux 系统层.Android 系统服务层.Zygote进程模型三个阶段:从开机到启动 Home Launcher 完成具体的任务细节可分为 ...

  5. Android 系统服务 - PMS 的启动过程

    相关文章链接: 1. Android Framework - 学习启动篇 2. Android 系统服务 - PMS 的启动过程 相关源码文件: frameworks/base/services/co ...

  6. android 优秀app界面设计,基于Android系统的App界面设计.doc

    基于Android系统的App界面设计 摘 要:智能手机时代的来临改变了大多数人的生活习惯,时至今日智能手机已经成为了人们工作生活中的一部分,在工作生活中发挥着重要的作用.App作为智能手机应用程序的 ...

  7. android app系统的测试_计算机毕设项目003之基于Android系统的App点餐外送系统

    计算机毕设项目之基于Android系统的App点餐外送系统 一. 项目名称 基于Android系统的App点餐外送系统 二. 项目简介 本项目是基于Android系统的手机点餐系统,整个项目分为App ...

  8. Android Studio运行app启动模拟器一直卡在“Wating for target device to come online”解决方法

    Android Studio运行app启动模拟器一直卡在"Wating for target device to come online"的情况如何解决 在启动模拟器如果一直卡在& ...

  9. android app启动图片 加动画效果,Android Studio开发APP启动程序时开屏简单动画效果快速有效解决方案...

    Android Studio开发APP启动程序时开屏简单动画效果快速有效解决方案 大家在设计APP的末期,都会想给APP搞一些"花里胡哨"的特效来提高APP的B格.博主表示亲测有效 ...

最新文章

  1. SQLSERVER中统计所有表的记录数
  2. 认识 android-job
  3. 西欧八国调查:25%受访者宁要AI政府也不要民选政治家
  4. 汽车常识全面介绍 - 悬挂系统
  5. sd卡座封装尺寸_讯普电子SD卡座的引脚定义
  6. 线索二叉树算法 - 草根编程网
  7. CSS3过渡、变形和动画
  8. 双网卡电脑同时访问内外网设置静态路由表
  9. excel单元格内回车换行
  10. 【学习笔记】stm32+openmv串口通信实现颜色识别
  11. ESP8266基于MicroPython的TCP socket回调函数实现案例
  12. Python 分析近2000条“数据分析”相关岗位招聘信息
  13. Tesla M40 使用分享
  14. Iass、Psss、Sass、Dass快速记忆
  15. Python三角形的构成
  16. 流畅的python读书笔记④:文本和字节序列
  17. 【排序算法】冒泡排序、简单选择排序、直接插入排序比较和分析
  18. 安装 opencv-python 出现Command “python setup.py egg_info“ failed with error code 1 in /tmp/pip-build-npa
  19. Java基础 ajax异步操作json
  20. day01、2 - 虚拟化与虚拟机的安全

热门文章

  1. 从程序员到项目经理(五):程序员加油站 -- 不是人人都懂的学习要点
  2. 【数电】(二) 基本逻辑运算与逻辑门电路
  3. C51单片机————总线与系统扩展
  4. Java面试宝典2013版(11版块1000题)
  5. eclipse调试debug时出现source not found
  6. koa2 从入门到进阶之路 (四)
  7. 使用gulp将文件转码至utf-8格式
  8. MySql表大小、行大小和列大小的限制
  9. 新手进阶:LoadRunner中Pacing的设置
  10. Rectangle 属性