1.APP还没有被打开过从桌面启动
<1>首先桌面进程会像AMS服务发送startActivity的请求,AMS从system_service中去拿----一次IPC通信
<2>system_service收到请求后通过socket的请求让Zygote进程去fork我们的APP进程
<3>APP进程创建成功后会持有AMS的代理对象ActivityManageProxy,通过这个代理对象发送attach application请求到AMS-----一次IPC通信
<4>AMS再通过ApplicationThreadProxy这个代理对象去让ApplicationThread去启动Activity,
ApplicationThread通过Handler消息让我们的ActivityThread调用handlerLaunchActivity启动Activity执行生命周期。----一次IPC通信 和一次Handler通信 2.应用内启动Activity
<1>实际会走ContentImp去StartActivity--->Instrumentation.execStartActivity方法-->ActivityManager.getService().startActivity 解释下这个ActivityManager.getService()其实就是AMS的代理类
<2>ActivityManagerService.startActivity--->ActivityStarter.startActivityUnchecked ---> 通过AplicationThread的代理类去让ApplicationThread执行这个请求,ApplicationThread又会通过Handler
让ActivityThread去执行startActivity---》Instrumentation.newActivity 创建成功--执行Activity的生命周期。 总结:其实都是通过AMS去启动Activity,而AMS通过IApplicationThread的AIDL接口来使ApplicationThread去真正的执行我们的创建过程。
不同的是从桌面启动的时候是利用进程间通信(Launcher--AMS)--(AMS--Zygote-APP进程)。有这个fork出APP进程的过程。后面的流程是相似的。

从桌面和应用内 Activity的启动流程的更多相关文章

  1. Android进阶系列之源码分析Activity的启动流程

    美女镇楼,辟邪! 源码,是一个程序猿前进路上一个大的而又不得不去翻越障碍,我讨厌源码,看着一大堆.5000多行,要看完得啥时候去了啊.不过做安卓的总有这一天,自从踏上这条不归路,我就认命了.好吧,我慢 ...

  2. 插件占坑,四大组件动态注册前奏(一) 系统Activity的启动流程

    转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52190050 前言:为什么要了解系统Activity,Service,,BroadCa ...

  3. Activity的启动流程分析

    Activity是Android应用程序的四大组件之中的一个,负责管理Android应用程序的用户界面,一般一个应用程序中包括非常多个Activity,他们可能执行在一个进程中.也可能执行在不同的进程 ...

  4. 从Activity的启动流程理解Binder

    简述 关于Activity启动流程和Binder的文章很多,大多数是分开来讲的,本文将二者结合起来,着重分析启动流程中跨进程方面的细节,其实,启动流程看似调用繁多,主要是复杂在Activity栈管理等 ...

  5. Activity的启动流程

    前言:新启动一个activity分为两种情况,第一种是在Launcher的桌面点击icon图标启动一个新的应用,第二种是在应用启动的情况下从OneActivity->TwoActivity 其实 ...

  6. 《转》深入理解Activity启动流程(四)–Activity Task的调度算法

    本文原创作者:Cloud Chou. 出处:本文链接 本系列博客将详细阐述Activity的启动流程,这些博客基于Cm 10.1源码研究. 深入理解Activity启动流程(一)--Activity启 ...

  7. 《转》深入理解Activity启动流程(三)–Activity启动的详细流程2

    本文原创作者:Cloud Chou. 出处:本文链接 本系列博客将详细阐述Activity的启动流程,这些博客基于Cm 10.1源码研究. 深入理解Activity启动流程(一)--Activity启 ...

  8. 《转》深入理解Activity启动流程(二)–Activity启动相关类的类图

    本文原创作者:Cloud Chou. 出处:本文链接 本系列博客将详细阐述Activity的启动流程,这些博客基于Cm 10.1源码研究. 在介绍Activity的详细启动流程之前,先为大家介绍Act ...

  9. 深入理解Activity启动流程(四)–Activity Task的调度算法

    本系列博客将详细阐述Activity的启动流程,这些博客基于Cm 10.1源码研究. 深入理解Activity启动流程(一)--Activity启动的概要流程 深入理解Activity启动流程(二)- ...

  10. 深入理解Activity启动流程(三)–Activity启动的详细流程2

    本文原创作者:Cloud Chou. 欢迎转载,请注明出处和本文链接 本系列博客将详细阐述Activity的启动流程,这些博客基于Cm 10.1源码研究. 深入理解Activity启动流程(一)--A ...

随机推荐

  1. hdu:最大点权(强连通分量kosaraju)

    Problem Description给定一个有向图,每个点ii有点权a_ia​i​​,请对于每个点ii,找到ii能到达的点中点权的最大值(包括ii点). Input第一行包含一个正整数T(1\leq ...

  2. manjaro安装后配置与美化

    时间同步 sudo timedatectl set-ntp true 换源 sudo pacman-mirrors -i -c China -m rank 更新 更新系统 sudo pacman -S ...

  3. mysql知识点一

    1.mysql中造成索引失效的原因有哪些?如何分析和解决? 原因: 1.like以通配符%开头索引失效 通常用的索引数据结构是B+树,而索引是有序排列的 优化:一种是使用覆盖索引,另一种是把%放后面 ...

  4. Github高效搜索方式

    Github高效搜索方式 文章目录 Github高效搜索方式 0.写在前面 1.常用的搜索功能 1.1 直接搜索 1.2 寻找指定用户|大小的仓库 1.3 搜索仓库 1.4 查找特定star范围的仓库 ...

  5. 整数划分问题(Java递归)

    整数划分问题(Java递归) 文章目录 整数划分问题(Java递归) 0. 问题描述 1.递归式 2.代码 3.参考 0. 问题描述 整数划分问题 将正整数n表示成一系列正整数之和:n=n1+n2+- ...

  6. windows安装WinDump

    1.下载软件,放在C盘: WinDump.exehttps://www.winpcap.org/windump/install/default.htmWinPcap_4_1_3.exe(windows ...

  7. 01-什么是ElasticSearch

    1.什么是搜索? 百度:我们想要查找想要的一些信息比如在百度搜索一本书,一部电影这就是最常见的搜索 但是百度!=搜索 垂直搜索(站内搜索) 互联网的搜索:电商网站,新闻网站,招聘网站,等等 IT系统的 ...

  8. 联想拯救者R9000P风扇拉满加强散热的方法

    管软可以开野兽模式,但是风扇还不是最猛的.锻炼的时候为了保护硬件,牺牲风扇和噪音吧,方法如下:下载 RWEverything运行RW.exe点击笔记本图标+EC文字的图案 修改:B0+0D对应的数据, ...

  9. 例题1:shell脚本

    题目总结: 1.搜索子域名的shell脚本 2.嗅探并抓去网页快照shell脚本 3.漏洞利用程序下载脚本 题目一:依次输入以下代码即可: 1.wget www.megacorpone.com  2. ...

  10. python 引用传递,简单例子

    from threading import Threaddef test1(a): while 1: print adef test2(a): a["a"] = 2if __nam ...