On API 18 and later, you can use eglGetProcAddress to dynamically query ES 2.0 functions, just like gl3stub.c in the sample does for ES 3.0 functions. Before API 18, you need to do something like this:
// global scope, probably a header file
extern GL_APICALL const GLubyte* (* GL_APIENTRY glGetString) (GLenum name);
extern GL_APICALL GLenum (* GL_APIENTRY glGetError) (void);
...
// initialization code
void* libGLESv2 = dlopen("libGLESv2.so", RTLD_GLOBAL | RTLD_NOW);
glGetString = dlsym(libGLESv2, "glGetString");
glGetError = dlsym(libGLESv2, "glGetError");
...
Add error-checking on the dlopen and dlsym calls, of course.
I'm not sure why you'd do this, though. libGLESv2.so is present on any version of Android you're likely to want to target, there shouldn't be any downside to linking against it.