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()函数完成创建