Android Framework基础——系统和APP启动流程(二)

Android Framework基础——系统和APP启动流程(二)_第1张图片

一、init进程

init进程由Linux内核启动,然后init进程负责:

1、挂载文件:识别各类文件,相当于解析硬盘
2、设置selinux -- 安全策略
3、启动属性服务
4、解析init.rc执行脚本中的Linux命令启动进程
5、循环处理脚本 -- *包括启动 zygote 和 ServiceManager(系统服务binder的管家)进程
6、守护系统关键进程:如蓝牙、铃声、拨打电话、安装应用等进程名结尾带“d”的系统进程

二、Zygote进程

        zygote进程是init进程启动的首个Java进程,之后zygote进程负责孵化System Server进程和APP进程。

1、相关代码位置

frameworks/base/cmds/app_process/app_main.cpp

frameworks/base/core/jni/AndroidRuntime.cpp

frameworks/base/core/java/com/android/internal/so/ZygoteInit.java

2、ZygoteInit分析

public static void main(String argv[]) {
    ZygoteServer zygoteServer = new ZygoteServer();
    ...    
    try {
        ...

        boolean startSystemServer = false;
        .

你可能感兴趣的:(FW开发,android)