Binder服务线程分析

来源:互联网 发布:移动金融的软件 编辑:程序博客网 时间:2024/06/04 19:22

常用的创建Binder Service的流程

  1. defaultServiceManager()->adddService(String16(“batteryproperties”), this);
  2. ProcessState::self()->startThreadPool();
  3. IPCThreadState::self()->joinThreadPool(mIsMain);

其中,No.1部分,将Service注册到ServiceManager;
No.2部分,将在当前执行线程中,创建出另一个线程作为Binder主线程并启动它;
No.3 部分,将当前执行线程转入一个死循环,一直监听Binder Driver返回的消息并处理掉。

也就是讲,上述3个函数执行玩后,能够从ServiceManager中看到Binder相关的两个线程。
线程1是由于Line2的一个run引起的,创建出了一个线程用于处理Binder消息;
原有线程最后也加入到Binder线程池中。

原创粉丝点击