Android启动

Linux 三个特殊进程:

PID 0 idle进程

 特点:1、系统自建的首个进程

            2、创建运行内核空间

            3、系统所在进程

PID 1 init进程

 特点:1、通过idle的kernel_thread创建

            2、初始化内核空间后,加载init程序,形成用户空间

            3、除idle外,其它进程都由init创建并运行

            4、启动其它系统进程后,init将变为守护进程监视它们

            5、Android的第一个进程

PID 2 kthreadd进程

Android 关键进程:

zygote进程

 特点:1、由init创建

            2、Java世界开创者

            3、源码涉及Native层

            4、进程创建和启动的内部是通过fork()实现

            5、创建流程:init进程通过fork() ==》  1.Zygote进程通过startSystemService()  ==》  SystemService进程 ==》 ActivityManagerService进程

                                                                           2.Zygote进程完成其它进程启动之后,调用runSelectLoopMpde()休眠

Activity 创建过程:

AcivityManagerService通过SystemService进程向发送消息唤醒Zygote进程 ==》  Zygote进程创建子进程    ==》 子进程调用android.app.ActivityThread的main()函数完成创建

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容