下载此文档

基于 Android NDK 进行 OpenGL ES开发 (1).docx


文档分类:IT计算机 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
基于AndroidNDK进行OpenGLES开发作者: 刘鹏日期: 2010-02-08本文详细介绍了如何利用AnroidNDK开发nativeOpenGLES程序。NDK简介Android SDK提供了一套 OpenGL ES接口,该接口是基于Java的,速度非常慢,往往很难满足需要。NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。使用NDK,我们可以将要求高性能的应用逻辑使用C开发,从而提高应用程序的执行效率。如 OpenGL ES的程序。2JNI对于NDK,在Java代码中调用C/C++代码是通过JNI实现的。JavaNativeInterface(JNI)是Java语言的本地编程接口,在java程序中,我们可以通过JNI实现一些用java语言不便实现的功能。通常有以下几种情况我们需要使用JNI来实现:java类库没有提供你的应用程序所需要的功能,通常这些功能是平台相关的;你希望使用一些已经有的类库或者应用程序,而他们并非用java语言编写的;程序的某些部分对速度要求比较苛刻,你选择用汇编或者c语言来实现并在java语言中调用他们。注意,不到万不得已不要使用JNI技术,一方面它需要你把握更多的知识才可以驾驭,一方面使用了JNI你的程序就会丧失可移植性。我们可以把JNI想象为本地代码和java代码的粘合剂,关系如下图所示3:OpenGL ESJava端核心代码如下所示:lassDemoActextendsActivity{privateGLSurfaceViewmGLView;***@OverrideprotectedvoidonCreate(BundlesavedInstanceState){(savedInstanceState);mGLView=newDemoGLSurfaceView(this);setContentView(mGLView);}......static{("sanangeles");}}classDemoGLSurfaceViewextendsGLSurfaceView{DemoRenderermRenderer;publicDemoGLSurfaceView(Contextcontext){super(context);mRenderer=newDemoRenderer();setRenderer(mRenderer);}{ativevoidnativeInit();ativevoidnativeResize(intw,inth);ativevoidnativeRender();ativevoidnativeDone();publicvoidonSurfaceCreated(GL10gl,EGLConfigconfig){nativeInit();}publicvoidonSurfaceChanged(GL10gl,intw,inth){nativeResize(w,h);}publicvoidonDrawFrame(GL10gl){nativeRender();}}注意:EGLContextLost

基于 Android NDK 进行 OpenGL ES开发 (1) 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数9
  • 收藏数0 收藏
  • 顶次数0
  • 上传人花开花落
  • 文件大小28 KB
  • 时间2019-06-18