大家好,我是无敌兔,从这一章开始讲在Android上进行Opengl ES 1.x的NDK开发实例,首先对这套开发实例教程的背景做一下说明。
Android SDK 提供了一套 OpenGL ES 接口,但该接口是基于 Java 的,速度非常慢,往往很难满足需要,所以采用NDK进行开发,底层的实现全部采用C++来编写。
该实例教程的java框架采用了Android NDK源码中的android-ndk-r9d\samples\hello-gl2,开发实例的编写采用了《Nehe的OpenGL中文教程》中的例子。本实例教程重在演示如何在NDK框架下进行Opengl ES的编程,关于实例的原理大家可以参考《Nehe的OpenGL中文教程》,本教程中的实例基本上在《Nehe的OpenGL中文教程》中可以找到相应的解释。
《Nehe的OpenGL中文教程》的在线地址:Nehe的OpenGL中文教程
一、开发环境
Eclipse 3.7.1
android-sdk_r23.0.0-windows
android-ndk-r9d
cygwin 1.7.9
二、框架介绍
src\com\android\gljni\GLJNIActivity.java 显示界面
src\com\android\gljni\GLJNILib.java JNI库
src\com\android\gljni\GLJNIView.java Opengl ES View
\jni\Android.mk NDK编译文件
\jni\gl_code.cpp JNI实现代码
三、实例介绍
GLJNIActivity.java
/*
* Copyright (C) 2007 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permission