使用stop start命令来重启framework,我们来看下其代码
是在system/core/toolbox下面,原理很简单就是利用ctl属性来控制进程。
start.c
[cpp] view plain copy #include <string.h> #include <stdio.h> #include <stdlib.h> #include <cutils/properties.h> int start_main(int argc, char *argv[]) { if(argc > 1) { property_set("ctl.start", argv[1]); } else { /* defaults to starting the common services stopped by stop.c */ property_set("ctl.start", "netd"); property_set("ctl.start", "surfaceflinger"); property_set("ctl.start", "zygote"); property_set("ctl.start", "zygote_secondary"); } return 0; }stop.c
#include <stdio.h> #include <string.h> #include <cutils/properties.h> int stop_main(int argc, char *argv[]) { if(argc > 1) { property_set("ctl.stop", argv[1]); } else{ /* defaults to stopping the common services */ property_set("ctl.stop", "zygote_secondary"); property_set("ctl.stop", "zygote"); property_set("ctl.stop", "surfaceflinger"); property_set("ctl.stop", "netd"); } return 0; }