SurfaceFlinge的入口代码在frameworks/native/services/surfaceflinger/main_surfaceflinger.cpp
启动流程大体分析如下:
1 启动binder 环境 。
2 创建了一个 SurfaceFlinger 对象:
sp<SurfaceFlinger> flinger = surfaceflinger::createSurfaceFlinger();
3 调用其 flinger->init(); 方法
4 注册为系统服务:
// publish surface flinger
sp<IServiceManager> sm(defaultServiceManager());
sm->addService(String16(SurfaceFlinger::getServiceName()), flinger, false,
IServiceManager::DUMP_FLAG_PRIORITY_CRITICAL | IServiceManager::DUMP_FLAG_PROTO);
5 注册服务SurfaceComposerAIDL:
// publish gui::ISurfaceComposer, the new AIDL interface
sp<SurfaceComposerAIDL> composerAIDL = new SurfaceComposerAIDL(flinger);
sm->addService(String16("SurfaceFlingerAIDL"), composerAIDL

2095

被折叠的 条评论
为什么被折叠?



