b2g 启动Log分析:b2g,nuwa,preallocated,app

https://blog.csdn.net/hunter___/article/details/83016461

https://blog.csdn.net/hunter___/article/details/83022983

 

 

b2g 进程主线程b2g thread 经过b2g loader,保存或加载各必备资源,完成后。开始runprocess,即开始运行新的进程,开始fork操作(这里用了socket pair)。b2g 和 nuwa,fork的位置在比较前,所以,nuwa fork后只复制了必备且不影响b2g的部分(fork时子进程获得父进程数据空间、堆和栈的复制,所以变量的地址(当然是虚拟地址)也是一样的。)

也即是先复制了一个同b2g process 一样的进程(此时的b2g 还只是一个b2g单线程的进程),现在还不是nuwa ,暂且叫它preNuwa(前nuwa 进程,成为nuwa之前的进程)。

下面兵分两路:

1.b2g process

b2g 一路一波很猛的操作走下去,创建了各类核心线程。(在那部分创建的哪些线程)

做了一大波操作,XRE_mainStartup,XRE_InitCommandLine,NS_InitXPCOM2等等

NS_InitXPCOM2操作后,开始XRE_MainRun,cmdLine->Run()等各种看不明白的操作,(目前为止还没有b2g进程的其他线程露面,也不知是否在上面的那些操作中已经创建好了这些线程),也不知是否是在commandline这里通过命令行方式一个个启动的???

总之,commandline之后就开始出现b2g 新线程的身影了。如下的imgio ,线程id 666,创建最高层的window窗口,并也开始startupapp,runnuwaprocess.

同时发现,nuwa将其(imageio)标记为支持nuwa的线程.

接着contentparent做了重要的操作,目前也只是在b2g 线程中,b2g 开始请求launch subprocess,即启动子进程,并为其准备,好,下面来了一个新线程,

新线程是 b2g 进程下的Gecko_IOThread 线程,tid为579,以此推断,前面在某处已经启动了这一系列线程,根据tid大小推断。

以上Log表明它(gecko io thread 线程)创建通道,并请求lauchapp,LaunchAppProcLoader(这里的app是nu

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值