浅显的总结一下Framework启动大概过程

总体

Android底层是linux系统,因而在开机时仍然是运行天字第一号进程inti,读取init.rc来创建第一个Dalvik进程zygote,下面是个Framework启动的整体图

1 、Init进程

Linux系统天字第一号进程,在我们眼中吊的飞起的Android系统在LInux中只不过是一个linux的一个应用程序而已,就通过启动一个用户级程序init的方式,完成引导进程。init始终是第一个进程.需要读取一下配置文件

Init.rc

Init.marvell.rc

然后进入创建zygote(受精卵)

2、zygote

第一个Dalvik虚拟机程序Zygote(受精卵),接下来所有的Dalvik虚拟机进程都是由它孵化出来,他创建时主要做了2件事

(1)Socket服务端:接受启动新的Dalvik进程的命令

(2)Framework共享类及共享资源:zygote进程启动后会装载一些共享的类和资源,这样新的Dalvik进程就不需要再次装载

然后就开始孵化第一个Dalvik进程SystemSever

在zygote启动中时,为了便于理解将其总结为5个部分

3、SystemSever

Android的所有服务循环框架都是建立SystemServer@(SystemServer.java)上。在SystemServer.java中看不到循环结构,只是可以看到建立了init2的实现函数,建立了一大堆服务,并AddService到service Manager。其中最重要的服务当属ActivityManagerSever(Ams),实在systemReady()调用后启动的,主要跟管理Activity启动相关,总结如下

4、启动Activity

AMS构造Activity对象放入mMainStack队列,则第一个运行的Actviity就是该Activity

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文:http://blog.csdn.net/xsf50717/article/details/47167989

android actviity模糊,Framework启动过程浅析相关推荐

  1. Framework启动过程浅析

    浅显的总结一下Framework启动大概过程 总体 Android底层是linux系统,因而在开机时仍然是运行天字第一号进程inti,读取init.rc来创建第一个Dalvik进程zygote,下面是 ...

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

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

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

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

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

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

  5. Android应用程序进程启动过程的源代码分析(1)

    Android应用程序框架层创建的应用程序进程具有两个特点,一是进程的入口函数是ActivityThread.main,二是进程天然支持Binder进程间通信机制:这两个特点都是在进程的初始化过程中实 ...

  6. Android应用程序进程启动过程

    相关文章 Android系统架构与系统源码目录 Android系统启动流程(一)解析init进程启动过程 Android系统启动流程(二)解析Zygote进程启动过程 Android系统启动流程(三) ...

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

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

  8. Flutter——在Android平台上的启动流程浅析

    介绍 Flutter应用是由平台来创建.初始化并启动的,这里我们以android为例,对启动过程做一个走马观花式的了解,旨在对平台端的工作有个大致了解. Android端的启动流程 启动流程实际上还涉 ...

  9. Android 系统服务管家servicemanager启动过程详解

    Android考虑到移动设备耗电以及跨进程通信效率等因素,基于OpenBinder专门为进程通信开发了一套框架:binder.例如,客户端程序需要获取WindowManager,TelephonyMa ...

最新文章

  1. 论坛社区做推广要精心的策划
  2. 3 个相见恨晚的 Google Colaboratory 奇技淫巧!
  3. 小程序获取input 的value_[小发现] 现在可以获取任意小程序的小程序码了!
  4. power(乘幂)函数剖析
  5. LeetCode 582. 杀死进程(图的遍历)
  6. Windows via C/C++ 学习(8)CreateProcess 函数
  7. Spark-SQL与hive整合【版本spark1.6.0+hive0.14】--Standalone模式
  8. c语言程序求对称矩阵,C语言经典算法上三角下三角对称矩阵
  9. 详细全面 :一份完整的数据分析师成长书单
  10. python3d动画控制_3D旋转玫瑰花:python-matplotlib实现
  11. 内测小程序 今日头条的超级APP梦能顺利实现吗?
  12. 如何解决浏览器的兼容性
  13. UEFI 中的Gmac网卡驱动实现
  14. 云原生|Qunar 云原生容器化落地实践
  15. SpringBoot(二)Error resolving template “xxx”, template might not exist or might not be accessible解决办法
  16. DSO(dsoframer)的接口文档在VC++使用
  17. 为啥叫四川?是有四条河吗?
  18. 在发送邮件的时候出现《命令顺序不正确。 服务器响应为:Error: need EHLO and AUTH first !》解决方案
  19. java基于微信小程序的在线考试系统 uniapp 小程序
  20. 达人评测 R55600G对比R74750G选哪个好

热门文章

  1. 基于Xml 的IOC 容器-载入配置路径
  2. 模块化操作(es6写法)
  3. 字符输出流_Writer类FileWriter类介绍
  4. 访问数组元素进行获取
  5. API Gateway简介
  6. jvm_垃圾收集算法讲解(二)
  7. SpringBoot(配置druid数据源、配置MyBatis、事务控制、druid 监控)
  8. oracle最大空闲时间,使用Oracle PROFILE控制会话空闲时间
  9. list lt t gt java_将DataTable转换成Listlt;Tgt;实现思路及示例代码
  10. 怎样利用超图客户端打点_QuickFix Java 讲解(三)客户端的搭建与解析