The setup I've used goes something like...
eglInitialize(m_display, &major, &minor);
eglChooseConfig(m_display, configAttr, &m_config, 1, &size);
m_context = eglCreateContext(m_display, m_config, EGL_NO_CONTEXT, ctxAttr);
m_surface = eglCreateWindowSurface(m_display, m_config, m_window, NULL);
eglMakeCurrent(m_display, m_surface, m_surface, m_context);
m_grInterface.reset(GrGLCreateNativeInterface());
m_grContext.reset(GrContext::Create(GrBackend::kOpenGL_GrBackend, (GrBackendContext)m_grInterface.get()));
GrBackendRenderTargetDesc brtd;
brtd.fConfig = GrPixelConfig::kRGBA_8888_GrPixelConfig;
brtd.fRenderTargetHandle = 0;
brtd.fWidth = m_width;
brtd.fHeight = m_height;
m_grRenderTarget.reset(m_grContext->textureProvider()->wrapBackendRenderTarget(brtd));
m_skSurface.reset(SkSurface::NewRenderTargetDirect(m_grRenderTarget->asRenderTarget()));
SkCanvas* canvas = m_skSurface->getCanvas();
canvas->drawColor(SK_ColorGREEN);
canvas->flush();
eglSwapBuffers(m_display, m_surface);
-Jose