📘 Zygote · 源码深潜

30章 完整图谱
🎯 友好 · 明快色系

点击卡片标题跳转对应章节 · 从init到未来

📚 共30讲 · 系统剖析
01
定位·核心作用·孵化应用与系统服务进程·与init进程的关系
02
init.rc启动脚本·service关键字·class main与late_start区别
03
app_process主函数·AndroidRuntime::start·JNI环境初始化
04
ZygoteInit.main()·preload()预加载·Socket创建与监听
05
app_main.cpp·AppRuntime继承·AndroidRuntime::startReg
06
ZygoteInit结构·registerZygoteSocket·preloadClasses·preloadResources
07
preloadClasses()加载预定义类·preloaded-classes文件格式与路径
08
preloadResources()·preloadSharedLibraries()·预加载性能影响
09
LocalServerSocket创建·ZygoteConnection·acceptCommandPeer()
10
ZygoteConnection.runOnce()·参数解析 (--setuid, --nice-name等)
11
fork()工作原理·写时拷贝·Zygote为何使用fork而非exec
12
forkAndSpecialize()·父子进程差异化·Zygote pid文件
13
SELinux应用·安全上下文切换·avc审计日志
14
setuid/setgid实现·capabilities继承与限制·rlimit资源限制
15
普通模式 vs SystemServer模式·--start-system-server参数
16
Zygote.forkSystemServer()·进程启动·handleSystemServerProcess()
17
堆初始化·预加载对象内存分布·对GC的影响
18
EventLog与Logcat·关键日志分析 (boot_progress_start, zygote_launch)
19
Crash处理机制·ZygoteHooks·UncaughtExceptionHandler
20
ZygoteWatchdog实现·超时检测·与SystemServer Watchdog区别
21
NativeBridge作用·Android on Chrome OS支持·初始化
22
USAP池概念·引入原因·与普通fork对比
23
USAPPool创建与管理·回收·Socket通信
24
AMS通过Socket发送请求·Zygote返回新进程pid
25
启动时间测量·预加载优化·并行加载·PGO
26
OOM保护·lowmemorykiller影响·自动重启机制
27
strace跟踪·gdb调试·breakpoint关键函数设断
28
Android 4.4→14 关键变化·commit与设计思想演变
29
厂商定制 (MIUI, EMUI)·自定义预加载·孵化策略修改
30
Android 15+趋势·与ART关系·微内核化影响