Android FrameWork(一)

Android FrameWork(一)

第一个启动的程序—init


知识回顾:

源码分析:
  • main.cpp入口
    —>first_stage_init.cpp 挂载文件系统文件
    init.cpp 首先初始化内存空— 创建Epoll—InstallSignalFdHandler(Epoll)注册Epoll监听—startPropertyService 调用函数把服务拉起来
    property_service.cpp
    创建CreateSocket 创建监听

  • LoadBootScripts 加载配置文件 创建解析器parser


拓展知识:
  • Android的架构分层:

application
framework
libraries runtime
linux

  • I/O多路复用

Select-->poll—>epoll 区别
Select -->数组 大小限制1024. 性能
Poll -->链表 没有大小限制 性能 系统上下文切换
Epoll-->红黑树 O(1)基于事件 fd 写操作唤起对应读操作端


总结:

1,FirstStageMain()挂在文件系统以及创建目录 调用selinux_setup
2,上线文审查
3,属性服务开启,创建Epoll 注册监听Epoll 子进程的一些情况 (重启异常操作等,对子进程进行线程守护)
4,startPropertyServic 开启属性服务 进行监听
5,LoadBootScripts 加载init.rc文件 进行解析 调用do_class_service文件
6,init.rc

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容