《深入理解Android 卷I》读书笔记
来源:互联网 发布:电脑手绘软件 编辑:程序博客网 时间:2024/06/07 04:45
init
init是一个进程,是用户空间的第一个进程。
对应源文件:init.c
。执行main方法,执行许多操作。其中一个操作就是读取配置文件init.rc
两个重要的职责:
- 负责创建系统中的几个关键进程,比如创建zygote进程。
- 提供属性服务(property service),类似于window平台的注册表
zygote
zygote是由init进程根据init.rc文件中的配置项创建的。
它最初的名字是“app_process”,后被替换为“zygote”。
对应的源文件:App_main.cpp
。执行main方法。
调用了AppRuntime.start(“com.android.internal.os.zygoteInit”,startSystemServer)方法。由于AppRuntime继承自AndroidRuntime,实际的start方法执行了3步
- 创建虚拟机 - startVm
- 注册JNI函数 - startReg
- 由C调用java代码 - ZygoteInit.java
在**ZygoteInit.java**main函数中,执行5个关键点
- 建立IPC通信服务端 - registerZygoteSocket
- 预加载类和资源 - preloadClasses和preloadResources
- 启动system_server进程 - startSystemServer
- 有求必应之等待请求 - runSelectLoopMode
- caller.run
SystemServer
关于zygote分裂
0 0
- 《深入理解Android 卷I》读书笔记
- JNI(深入理解Android卷I)的读书笔记
- 深入理解 Android 卷I
- 深入理解 Android 卷I
- 深入理解 Android 卷I
- 深入理解 Android 卷I
- 深入理解 Android 卷I
- 深入理解 Android 卷I
- 深入理解 Android 卷I
- 深入理解 Android 卷I
- 深入理解 Android 卷I
- 深入理解 Android 卷I
- 深入理解 Android 卷I
- 深入理解 Android 卷I
- 深入理解 Android 卷I
- 深入理解 Android 卷I
- 深入理解 Android 卷I
- 深入理解 Android 卷I
- Oracle高级篇之start with关键字的用法
- SQL提高查询效率【in、not in、between、like】等条件讲述
- 使用vlc搭建http ts流服务器
- 《CODE》 读书笔记16
- 《C和指针》——stdarg宏简介
- 《深入理解Android 卷I》读书笔记
- Android Studio中的图片存放
- 文章标题
- 远程访问ipython notebook
- 运行react-native项目时报错。
- Docker
- Spring配置redis
- 递推递归练习--J(数学黑洞)
- 源于Design Pattern Explanation with C++ Implementation的 设计模式 C++