系统启动之一

public class ZygoteInit {
//frameworks/base/core/java/com/android/internal/os/ZygoteInit.java
public static void main(String argv[]) {

registerZygoteSocket();//注册zygote用的socket

preload();//预加载类和资源

startSystemServer() //启动system_server进程

runSelectLoopMode() //

} catch (MethodAndArgsCaller caller) {
            caller.run(); //很重要的caller run函数

}

private static void registerZygoteSocket(String socketName) {
        if (sServerSocket == null) {
            int fileDesc;
            final String fullSocketName = ANDROID_SOCKET_PREFIX + socketName;
            try {
                String env = System.getenv(fullSocketName);
                fileDesc = Integer.parseInt(env);
            } catch (RuntimeException ex) {
                throw new RuntimeException(fullSocketName + " unset or invalid", ex);
            }

   

你可能感兴趣的:(android,系统源码学习)