0
点赞
收藏
分享

微信扫一扫

安卓Java面试题 191- 195

软件共享软件 03-23 09:30 阅读 5
191. 简述Android启动一个应用的流程是怎样的呢 ?

我们都知道平常在使用 Activity的过程中,只需要调用Activity的startActivity方法,传入适当的参数就可以启动一个我们想要启动的Activity 了,但是你知道这个过程中经历了些什么吗?今天我想从FrameWork层面解释下从系统启动到显示出我们的第一个Activity的整个过程,也算是对 面试题:说一下一个Android APP从点击打开开始,是怎样展示在用户面前的回答了,我不打算从源码角度进行分析,只希望能够将整个逻辑流程捋清楚就可以啦;
(1):首先,系统刚刚启动的时候加载的是Linux内核,在Linux内核加载完成之后会创建出来一个init进程,启动init进程解析 init.rc文件首先会fork出一个叫ServerManager的子进程,该进程主要用于管理我们的系统服务,他内部存在一个server服务列 表,这个列表中存储的就是那些已经注册的系统服务,随后init进程会fork出一个Zygote的子进程,Zygote进程是一个守护进程,之后,当我 们的应用程序想要启动的时候,实际上是由Zygote来fork出子进程给我们的应用程序的,这就保证了我们的应用程序运行在单独的子进程中,即使一个应 用程序奔溃也不会影响另一个应用程序的执行;


(2):在Zygote进程启动之后,会通过ZygoteInit的main方法fork出一个SystemServer子进

举报

相关推荐

0 条评论