WEB开发网      濠靛倻鏅悵顖涚附閽樺鐎诲ù婊庡亾缁辨帗鎷呴悩鍨暠濞戞挴鍋撳ù鐘烘閸ㄥ孩绂嶉锝喰﹂柟瀛樺灣濠婃垿鎯冮崟顏嗩伇濞寸姾妫勬慨鈺呭礉濞戝磭骞㈤悹鍥у槻閸ㄥ孩绂嶉敓锟� ---闁挎洩鎷�
开发学院手机开发Android 开发 Android 启动流程: Init.c 阅读笔记 阅读

Android 启动流程: Init.c 阅读笔记

 2010-09-10 00:55:00 来源:WEB开发网 闁靛棴鎷�闁告垵绻愰惃顒傗偓娑欍仦缂嶏拷濠⒀呭仜閵囧洨鈧稒銇炵紞锟�闁靛棴鎷�  闁稿繗娅曢弫鐐次涘▎鎰泚闁告娲ㄥ▓鎴濐嚗椤旂厧瑙�
核心提示:不能干预到他们,- /system/build.prop- /system/default.prop- /data/local.prop- 在读取默认的property 后读取presistent propertie ,Android 启动流程: Init.c 阅读笔记(2),在/data/property 中- 为s
不能干预到他们。

- /system/build.prop

- /system/default.prop

- /data/local.prop

- 在读取默认的property 后读取presistent propertie ,在/data/property 中

- 为sigchld handler 创建信号机制

- 确认所有初始化工作完成

- device_fd(device init 完成)

- property_set_fd(property server start 完成)

- signal_recv_fd ( 信号机制建立)

- 执行所有触发标识为early-boot 的action

- 执行所有触发标识为boot 的action

- 基于当前property 状态,执行所有触发标识为property 的action

- 注册轮询事件:

- device_fd

- property_set_fd

-signal_recv_fd

- 如果有keychord ,则注册keychord_fd

- 如果支持BOOTCHART, 则初始化BOOTCHART

- 进入主进程循环:

- 重置轮询事件的接受状态,revents 为0

- 查询action 队列

- 重启需要重启的进程

- 轮询注册的事件

- 如果signal_recv_fd 的revents 为POLLIN ,则得到一个信号,获取并处理

- 如果device_fd 的revents 为POLLIN, 调用handle_device_fd

- 如果property_fd 的revents 为POLLIN, 调用handle_property_set_fd

- 如果keychord_fd 的revents 为POLLIN, 调用handle_keychord

上一页  1 2 

Tags:Android 启动 流程

编辑录入:coldstar [复制链接] [打 印]
赞助商链接