1.引言
之前把init過程都記錄了下,今天的任務就是復習之前的筆記,按照步驟打印log。看看是不是那么回事。
2.正題
總結下init過程一次調用的方法:
init.cpp
-
property_init()
- system_property_area_init() //初始化共享內存
-
start_property_service
- create_socket //創建服務端的socket接受請求
- register_epoll_handler //將屬性處理方法與socket綁定
- handle_property_set_fd //正在處理屬性請求的方法,內置peoperty_set方法等同于setValue
-
init_parse_config_file //解析init.rc
- parse_config_file
- parse_config
- parse_new_section
- parse_line_action //將命令添加進雙重list。
- early-init (執行early init 下面的命令 )
- init (執行init下面的命令 )
- late-init (執行late-init下面的命令 )
-
boot (執行early init 下面的命令 )
執行boot命令,會調用start_service 方法然后產生了zygote。
截圖如下:
image.png
image.png