WindowManagerImpl.addView->
ViewRootImpl.setView->
ViewRootImpl.relayoutWindow->
ViewRootImpl.performTraversals->
ViewRootImpl.relayoutWinodw->
ViewRootImpl.sWinodwSession.relayout()->
WindowManagerService.relayoutWinodw()->
WindowState.createSurfaceLocked()->
WindowState.mSurface = new Surface(...)->
Surface.init()->
SurfaceSession_init()
{
SurfaceComposerClient* client = (SufaceComposerClient*)env->GetIntField(session, sso.client);
sp<SurfaceControl> surface = client->createSurface();
env->SetIntFiled(so.surfaceControl, (int)surface.get());
}
http://blog.csdn.net/windskier/article/details/7041610
=======================================
order
Surface_init()->
Surface_setPosition(int x, int y)->
Surface_setLayer(int zorder)->
Surface_hide()->
ViewRootImpl.setView->
ViewRootImpl.relayoutWindow->
ViewRootImpl.performTraversals->
ViewRootImpl.relayoutWinodw->
ViewRootImpl.sWinodwSession.relayout()->
WindowManagerService.relayoutWinodw()->
WindowState.createSurfaceLocked()->
WindowState.mSurface = new Surface(...)->
Surface.init()->
SurfaceSession_init()
{
SurfaceComposerClient* client = (SufaceComposerClient*)env->GetIntField(session, sso.client);
sp<SurfaceControl> surface = client->createSurface();
env->SetIntFiled(so.surfaceControl, (int)surface.get());
}
http://blog.csdn.net/windskier/article/details/7041610
=======================================
order
Surface_init()->
Surface_setPosition(int x, int y)->
Surface_setLayer(int zorder)->
Surface_hide()->