主要观点总结
本文主要介绍了Android系统中SystemServer的启动流程,包括fork操作、SystemServer的Runnable创建、反射调用SystemServer的main函数等关键步骤。
关键观点总结
关键观点1: fork操作是Android系统创建进程的基础,通过fork,系统可以创建出几乎完全一样的子进程。
在文章提供的代码中,通过fork操作创建了父进程和子进程,两个进程都会执行到第5行的位置,接下来根据pid的值决定执行不同的分支。
关键观点2: SystemServer的启动流程包括创建Runnable、反射调用指定类的main函数等步骤。
文章详细描述了SystemServer的启动流程,从创建Runnable开始,通过反射找到SystemServer类的main方法,并调用它。最终进入Looper的循环处理消息。
关键观点3: SystemServer承担的任务很繁重,需要启动一系列的服务。
SystemServer负责启动一系列的基础服务、核心服务、其他服务和Apex服务,这些服务对于系统的正常运行至关重要。
文章预览
系列教程: 再学安卓 - Zygote 再学安卓 - init进程 前言 在正式开始之前,让我们来尝试理解一下,操作系统复制一个进程(fork)到底是一个什么样的操作,对于程序的执行流程会产生什么影响。先看一下这个简单的代码: # include # include int main ( int argc, char * const argv[]) { pid_t pid; pid = fork(); if (pid == 0 ) { printf ( "I'm child, my id is %d\n" , getpid()); printf ( "Now in child process\n" ); } else if (pid > 0 ) { printf ( "I'm parent, my id is %d\n" , getpid()); printf ( "Now in parent process\n" ); } else { printf ( "error occurred!" ); } return 0 ; } 我们在Ubuntu下面编译一下以上代码并执行: // 编译 gcc fork_test.c -o bin_fork_test // 执行 ./bin_fork_test // 输
………………………………