1 首先要理清一下什么是system_process
1.1 system_process是我们在DDMS可以看到的名称。设置的地方在ActivityThread.java:
1.1 system_process是我们在DDMS可以看到的名称。设置的地方在ActivityThread.java:
private void attach(boolean system) {
sThreadLocal.set(this);
mSystemThread = system;
if (!system) {
...
} else {
// Don't set application object here -- if the system crashes,
// we can't display an alert, we just want to die die die.
android.ddm.DdmHandleAppName.setAppName("system_process",
UserHandle.myUserId());
...
}
...
}
1.2 system_process不是进程的名称,它是DDM用于区别不同的Java App的标识,对于一般Android程序来说会被设置成包名
1.3 system_process的进程名称是system_server,就是我们通过ps可以看到的
1.4 system_server进程是zygote进程孵化的第一个Java进程
1.5 zygote进程的程序名称叫app_process。
它的代码在frameworks\base\cm