[Android]Activity启动过程
Android系统启动加载流程:
参考图
- Linux内核加载完毕
- 启动
init
进程 init
进程fork出zygote
进程zygote
进程在ZygoteInit.main()
中进行初始化的时候fork出SystemServer
进程SystemServer
进程开启的时候初始化ActivityThread
和ActivityManagerService
(其它还有PowerManagerService
,DisplayManagerService
,PackageManagerService
)- 启动
Launcher
,Launcher
本质上也是一个App,继承自Activity
App与AMS通过Binder进行IPC通信
启动一个Activity
客户端:ActivityManagerProxy --> Binder驱动 --> ActivityManagerService:服务器
- ActivityThread
老板,虽然说家里的事自己说了算,但是需要听从AMS的指挥 - Instrumentation
老板娘,负责家里的大事小事,但是一般不抛头露面,听一家之主ActivityThread的安排,每个Activity都有一个Instrumentation
引用,整个进程只有一个Instrumentation
实例 - ActivityManagerProxy
ActivityManagerNative.getDefault().startActivity获取ActivityManagerProxy
对象通过Binder IPC与AMS通信 - AMS
真正启动一个Ativity(ActivityStackSupervisor
,ActivityStack
)
Resume一个Activity
客户端:ApplicationThread <-- Binder驱动 <-- ApplicationThreadProxy:服务器
- AMS
- ApplicationThreadProxy
ApplicationThreadProxy
对象通过Binder IPC与客户端通信。 - ApplicationThread
- Handler
- ActivityThread
- Activity
调用onResume方法
AMS(SystemServer进程)与zygote通过Socket进行IPC通信
参考:http://blog.csdn.net/zhaokaiqiang1992/article/details/49428287
[Android]Activity启动过程相关推荐
- 【Android 插件化】Hook 插件化框架 ( Hook Activity 启动过程 | 静态代理 )
Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...
- Android系统(117)---Activity启动过程
Activity启动过程 ###一些基本的概念 ActivityManagerServices,简称AMS,服务端对象,负责系统中所有Activity的生命周期 ActivityThread,App的 ...
- Android深入四大组件(五)Android8.0 根Activity启动过程(后篇)
前言 在几个月前我写了Android深入四大组件(一)应用程序启动过程(前篇)和Android深入四大组件(一)应用程序启动过程(后篇)这两篇文章,它们都是基于Android 7.0,当我开始阅读An ...
- Android世界第一个activity启动过程
Android世界第一个activity启动过程 第一次使用Markdown,感觉不错. Android系统从按下开机键一直到launcher的出现,是一个如何的过程,中间都做出了什么操作呢.带着这些 ...
- Activity启动过程详解(Android P)
本章我们来分析Activity的启动过程. 我们知道,Activity可以通过两种方式启动:一种是点击应用程序图标,Launcher会启动主Activity:另一种是在应用程序内部,调用startAc ...
- Android 面试必备 - 系统、App、Activity 启动过程
前言 最近准备更新 Android 面试必备基础知识系列,有兴趣的可以关注我的微信公众号 stormjun94,有更新时,第一时间会在微信公众号上面发布,同时,也会同步在 GitHub 上面更新,如果 ...
- Android深入四大组件(六)Android8.0 根Activity启动过程(前篇)
相关文章 Android深入四大组件系列 Android系统启动系列 Android应用程序进程系列 Android深入解析AMS系列 前言 在几个月前我写了Android深入四大组件(一)应用程序启 ...
- Android深入四大组件(七)Android8.0 根Activity启动过程(后篇)
相关文章 Android深入四大组件系列 Android系统启动系列 Android应用程序进程系列 Android深入解析AMS系列 前言 在几个月前我写了Android深入四大组件(一)应用程序启 ...
- Android进阶——Android四大组件启动机制之Activity启动过程
前言 Activity启动过程涉及到的比较多的知识点有Binder的跨进程通讯,建议先看完Binder的跨进程通讯再来阅读本篇文章,在文章阅读开始,我们先要理解Activity启动模型,再者去理解有关 ...
最新文章
- “黑客”一年能赚多少钱?
- oracle 自定义函数
- Java黑皮书课后题第6章:**6.29(双素数)双素数是指一对差值为2的素数。例如,3和5就是一对双素数,5和7是一对双素数,而11和13也是一对双素数。编写程序,找出小于1000的所有双素数
- 设计模式之: 装饰器模式
- java主程序怎样调用子程序_存过和函数以及在Java程序中的调用
- 查询学生选修课程管理系统java_JAVA数据库课程设计学生选课管理系统的
- Node.js 多版本安装配置(Window、Ubuntu 、CentOS 、Mac OS、Cloud Studio)
- 高性能Web动画和渲染原理系列(4)“Compositor-Pipeline演讲PPT”学习摘要【华为云技术分享】
- 80% 的 Android 应用正使用加密流量!
- 微软不愿意提及的软肋:Win10的语音识别
- HTML5与触摸界面
- 类加载常见错误总结,写得非常好!
- Android下如何使用smem工具获取进程的内存分布
- 代码审计 企业级Web代码安全架构 完整版pdf
- 利用Windows注册Dll或其他文件
- hl2240d硒鼓清零方法
- 武汉理工大学-数值分析-2019年期末复习提纲
- cmd查看自己的CPU参数
- 从阿里双十一看云计算
- ConnectionAbortedError: [WinError 10053] 你的主机中的软件中止了一个已建立的连接。
热门文章
- GitHub删除已有文件和提交文件的方法
- python综合管理系统_Python-20 (信息系统-框架/循环/增删/综合应用)
- C++ Map简单介绍 ,比如添加元素、删除元素和打印元素
- java Map统计字符串中元素的数量
- codeforces 1030A-C语言解题报告
- Android Glide图片加载框架(二)源码解析之into()
- 什么是换码符(escape character)?
- 转型从思维习惯的转变开始
- JSON字符串转换为Map
- 各种数据库对应的jar包、驱动类名和URL格式