您的位置:首页 > 移动开发 > Android开发

android 4.2 dumpsys SurfaceFlinger 过程

2013-06-09 18:08 501 查看
class SurfaceFlinger : public BinderService<SurfaceFlinger>,

public BnSurfaceComposer,

private IBinder::DeathRecipient,

private Thread,

private HWComposer::EventHandler

class BnSurfaceComposer: public BnInterface<ISurfaceComposer>

template<typename INTERFACE>

class BnInterface : public INTERFACE, public BBinder

{

public:

virtual sp<IInterface> queryLocalInterface(const String16& _descriptor);

virtual const String16& getInterfaceDescriptor() const;

protected:

virtual IBinder* onAsBinder();

};

template<typename SERVICE>

class BinderService

{

public:

static status_t publish(bool allowIsolated = false) {

sp<IServiceManager> sm(defaultServiceManager());

return sm->addService(String16(SERVICE::getServiceName()), new SERVICE(), allowIsolated);

}

static void publishAndJoinThreadPool(bool allowIsolated = false) {

sp<IServiceManager> sm(defaultServiceManager());

sm->addService(String16(SERVICE::getServiceName()), new SERVICE(), allowIsolated);

ProcessState::self()->startThreadPool();

IPCThreadState::self()->joinThreadPool();

}

static void instantiate() { publish(); }

static status_t shutdown() {

return NO_ERROR;

}

};



frameworks/native/libs/binder/IPCThreadState.cpp

/ALOGI("<<<< TRANSACT from pid %d restore pid %d uid %d\n",

// mCallingPid, origPid, origUid);

调式的时候也许用得到,知道从那个pid发出的消息
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: