.java如下
package com.GLTest.w4e;import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;import android.app.Activity;
import android.content.Context;
import android.opengl.GLSurfaceView;
import android.os.Bundle;public class w4e extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); mGLView = new w4eGLSurfaceView(this);
setContentView(mGLView);
} private GLSurfaceView mGLView; static {
System.loadLibrary("w4e-jni");
}
}class w4eGLSurfaceView extends GLSurfaceView 
{
public w4eGLSurfaceView(Context context) {
super(context);
mRenderer = new w4eRenderer() ;
setRenderer(mRenderer);
} w4eRenderer mRenderer;
}class w4eRenderer implements GLSurfaceView.Renderer {
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
nativeInit();
}
public void onSurfaceChanged(GL10 gl, int w, int h) {
//gl.glViewport(0, 0, w, h);
nativeResize(w, h);
}
public void onDrawFrame(GL10 gl) {
nativeRender();
}
private static native void nativeInit();
private static native void nativeResize(int w, int h);
private static native void nativeRender();
private static native void nativeDone();
}
.c如下
#include <jni.h>
#include <GLES/gl.h>
#include <GLES/glext.h>
#include <android/log.h>unsigned int vbo[2];
float positions[12] = {1,-1,0, 1,1,0, -1,-1,0, -1,1,0};
short indices  [4]  = {0,1,2,3};void Java_com_GLTest_w4e_w4eRenderer_nativeInit( JNIEnv*  env )
{
glShadeModel(GL_SMOOTH);
glClearColorx(0,0,0,0);
glClearDepthf(1.0f);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST);
}void Java_com_GLTest_w4e_w4eRenderer_nativeResize(JNIEnv*  env,int w, int h)
{
glViewport (0,0,w,h); 
glMatrixMode   (GL_PROJECTION);
glLoadIdentity ();
glOrthof       (-2, 2, -2, 2, -2, 2);
}void Java_com_GLTest_w4e_w4eRenderer_nativeRender( JNIEnv*  env )
{
glEnableClientState (GL_VERTEX_ARRAY);
glClearColor (0,0,1,1);
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode (GL_MODELVIEW);
glLoadIdentity (); 
glVertexPointer (3, GL_FLOAT, 0, 0);
glBindBuffer    (GL_ELEMENT_ARRAY_BUFFER, vbo[1]);
glDrawElements  (GL_TRIANGLE_STRIP, 4, GL_UNSIGNED_SHORT, 0);
glDisableClientState(GL_VERTEX_ARRAY); 
}void
Java_com_GLTest_w4e_w4eRenderer_nativeDone( JNIEnv*  env )
{
return;
}
.mk如下
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE    := w4e-jni
LOCAL_SRC_FILES := w4e.cLOCAL_LDLIBS := -lGLESv1_CMinclude $(BUILD_SHARED_LIBRARY)
在模拟器上进应用就自动退出了 求高手指点