Android的进程图示:
1, 系统上电后,启动加载每个OEM的ROM, 然后启动boot loader
2, bootloader开始加载系统内核和驱动, kthreadd(kernel thread daemon)
3,启动Android的init进程
4,init启动zygote进程
5,zygote启动每个services
父进程:
- kthreadd进程: 是所有内核进程的父进程
- init进程 : 是所有用户进程的父进程(或者父父进程)
- zygote进程 : 是所有上层Java进程的父进程,另外zygote的父进程是init进程。
在Android进程中,有3个非常重要的进程(即图中的深紫色项),如下:
-
system_server
:是由zygote孵化而来的,是zygote的首席大弟子,托起整个Java framework的所有service,比如ActivityManagerService, PowerManagerService等等。 -
mediaserver
:是由init孵化而来的,托起整个C++ framework的所有service,比如AudioFlinger, MediaPlayerService等等。 -
servicemanager
:是由init孵化而来的,是整个Binder架构(IPC)的大管家,所有大大小小的service都需要先请示servicemanager。
查看进程的线程:
ps -t |grep -E "NAME| pid"