android系统启动过程

网友投稿 169 2024-01-12


Android启动过程深入解析

Android内核与桌面linux内核启动的方式差不多。内核启动时,设置缓存、被保护存储器、计划列表,加载驱动。当内核完成系统设置,它首先在系统文件中寻找”init”文件,然后启动root进程或者系统的第一个进程。

如果是同一个App中启动某个设置了此模式的Activity的话,如果栈中已经存在该Activity的实例,那么就会将该Activity上面的Activity清空,并将此实例放在栈顶。

Android系统中具备6个模式,分别为一般启动模式(normal mode)、安全模式(safe mode)、恢复模式(recovery mode)、引导模式(bootloader mode)、fastboot模式和诊断模式(diagnostic mode)。

Android系统启动之init.rc文件解析过程

1、Android init.rc文件由系统第一个启动的init程序解析。是启动系统服务使用的文件。主要包含了四种类型的语句:Action和services显式声明了一个语句块,而commands和options属于最近声明的语句块。

2、init是第一个进程,我们可以说它是root进程或者说有进程的父进程。init进程有两个责任,一是挂载目录,比如/sys、/dev、/proc,二是运行init.rc脚本。init进程可以在/system/core/init找到。

3、在 Zygote 一文中说过, init 进程启动的第二阶段会解析 init.rc 文件。在这之后会触发 trigger init 。结合 init.rc 看看 action init 做了什么。

4、Android系统启动流程: 首先会从ROM中预定义的地方加载引导程序BootLoader到RAM中,并执行BootLoader程序启动Linux Kernel,然后启动用户级别的第一个进程init进程。

安卓应用启动详解:从Zygote到你的Activity.onCreate()

1、ActivityManagerService 通过调用 startProcessLocked() 方法创建一个新进程,该方法通过套接字连接将参数发送到Zygote进程。

2、Activity onCreate()是在Activity创建时被系统调用,是一个Activity生命周期的开始;它主要做这个activity启动时一些必要的初始化工作,这个函数调用完后,这个activity并不是说就已经启动了,或者是跳到前台了。

3、⑥App进程的binder线程(ApplicationThread)在收到请求后,通过handler向主线程发送LAUNCH_ACTIVITY消息;⑦主线程在收到Message后,通过发射机制创建目标Activity,并回调Activity.onCreate()等方法。

Android系统启动-SystemServer进程

init进程会解析init.rc脚本做一些初始化工作,包括挂载系统文件、创建工作目录以及启动系统服务进程等,其中系统服务进程包括Zygote、ServiceManager、Media等。

你好,这就是手机自带的软件。这个程序是广告,我以前一看这名称SystemService(系统服务),我以为是android的东西不敢卸,后来知道就直接卸了。

SystemServer也是一个进程,包括AMS、PMS、WMS等等。zygote意为“受精卵“。Android是基于Linux系统的,而在Linux中,所有的进程都是由init进程直接或者是间接fork出来的,zygote进程也不例外。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java序列化方式有几种
下一篇:如何制作独立游戏?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~