Android平台兼容本地代码OpenGL程序的系统及方法技术方案

技术编号:10420935 阅读:113 留言:0更新日期:2014-09-12 11:49
本发明专利技术公开了一种获取和传递Android应用程序生命周期事件及管理OpenGL渲染环境,实现Android平台兼容本地代码OpenGL程序的系统和方法,所述系统包括:事件处理模块、本地前后台管理模块及OpenGL环境管理模块。所述方法应用于所述系统之上,所述方法包括:获取Android应用程序生命周期相关事件,通过事件处理模块进行事件封装,并传递给本地前后台管理模块对应用程序生命周期进行同步管理;通过OpenGL环境管理模块自动管理OpenGL环境,完成Android窗体管理系统与本地OpenGL环境的无缝对接,解决本地代码OpenGL程序绘制到Android系统Java层窗体的技术问题;通过本地前后台管理模块,自动对OpenGL环境进行控制,保证OpenGL渲染环境的正确性;使用线程同步技术,确保Android系统资源管理流程与OpenGL环境管理流程达到一致。

【技术实现步骤摘要】

本专利技术涉及计算机嵌入式领域,尤其涉及Android平台显示系统领域,更具体的说,本专利技术涉及一种Android平台兼容本地代码OpenGL程序的系统和方法。
技术介绍
目前由Google公司推出的Android开发式操作系统自发布以来已经占据了大量的市场份额,涉及的领域由手机延伸到智能电视、平板电脑、数码相机、游戏机等其他诸多领域。由于Android系统的开放性与普及率,越来越多的开发者投入到Android应用的研发工作中。已经在其他平台拥有成熟软件产品的公司也纷纷将其产品移植到Android平台,以获得更多的用户。Android系统使用Java作为开发语言,由于Android系统的开放性,各个硬件厂商对Android框架的底层实现各不相同,同样的代码在不同硬件平台上表现出来的效果也不一样,这对开发工作造成一定的影响。并且Android系统升级更新相当频繁,Android系统API (应用编程接口,英文Application Programming Interface,以下称API)可能变化、失效、甚至被移除,这就造成软件产品的维护工作相当繁重。例如,针对不同的Android版本都要推出不同的应用程序,增加了开发工作量;不同版本的应用程序需要部署到相应的平台,增加了相关投入。OpenGL (开放式图形库,英文Open Graphics Library,以下称OpenGL)作为行业领域中最为广泛接纳的2D/3D图形API,独立于操作系统,具有权威性和延续性。帮助开发者实现高性能、极具冲击力的高视觉表现软件的开发。支持OpenGL软件具有很好的移植性,所以获得非常广泛的应用。目前诸多成熟的软件产品都使用OpenGL,这些由本地代码(C、C++)构建的软件产品就面临移植到Android平台对接Java接口以及Android窗体管理系统的问题。如果使用本地代码与OpenGL的软件产品能快速应用到Android平台,则将降低软件产品移植的开发工作,最大化利用技术储备,吸引开发者加入Android系统生态圈,扩大广品的市场占有率。在现有技术中,专利技术申请“基于Android消息处理机制的视图切换系统及方法”公开了一种基于Android消息处理机制的视图切换系统及方法,可以实现Android手机和采用Android处理系统的手持设备的视图切换功能,满足用户对应用程序可视化效果的需求,但不能实现Android平台兼容本地代码OpenGL程序的功能而达到简化移植的目的。另外,专利技术申请“在安卓系统下运行标准C程序的方法和装置”公开了一种解决C程序移植困难的问题,但必须通过在Android系统中再搭建一个标准C库的工作环境,该专利技术也不能实现Android平台兼容本地代码OpenGL程序的功能而达到简化移植的目的。
技术实现思路
本专利技术的目的之一在于解决上述不足,提供一种获取和传递Android应用程序生命周期事件及管理OpenGL渲染环境,实现Android平台兼容本地代码OpenGL程序的系统和方法,以达到简化移植的目的。为解决上述的技术问题,本专利技术采用以下技术方案:本专利技术一方面提供了一种获取和传递Android应用程序生命周期事件及管理OpenGL渲染环境,以实现Android平台兼容本地代码OpenGL程序的系统,所述系统包括:事件处理模块、本地前后台管理模块及OpenGL环境管理模块。其中,事件处理模块,用于将获取到的事件封装成可供底层识别的数据格式,并将该事件数据保存到队列中等待本地前后台管理模块进行处理。本地前后台管理模块,用于从所述事件处理模块获取事件数据,同步Android应用主线程与OpenGL处理线程,通知OpenGL环境管理模块进行相应处理。OpenGL环境管理模块,用于管理OpenGL环境相关的初始化、销毁以及资源的释放和重新获取,降低本地代码OpenGL程序与Android窗体系统的稱合度。所述事件处理模块获取Android应用程序生命周期相关事件,通过所述事件处理模块进行事件封装,并传递给所述本地前后台管理模块对应用程序生命周期进行同步管理,实现了对生命周期相关事件的捕捉,并对事件数据进行封装以及将队列送入等待处理。所述OpenGL环境管理模块自动管理OpenGL环境相关的初始化、销毁、资源的释放及重新获取,所述OpenGL环境管理模块完成Android窗体管理系统与本地OpenGL环境的无缝对接,解决本地代码OpenGL程序绘制到Android系统Java层窗体的技术问题。在Android应用进行前后台切换时,通过所述本地前后台管理模块,自动对OpenGL环境进行控制,所述控制的方式至少包括绘图表面(Surface)的创建和销毁、渲染的暂停和恢复等,保证OpenGL渲染环境的正确性。所述事件处理模块、所述本地前后台管理模块及所述OpenGL环境管理模块中使用线程同步技术,确保Android系统资源管理流程与OpenGL环境管理流程达到一致。所述事件处理模块、所述本地前后台管理模块及所述OpenGL环境管理模块使用JNI (Java 本地接口,英文 Java Native Interface,以下称 JNI)技术,作为 Android Java 层与本地代码交互的桥梁,所述事件处理模块、所述本地前后台管理模块及所述OpenGL环境管理模块完全代替开发者完成了 Java与本地代码接口的相互转换。本专利技术另一方面提供了一种获取和传递Android应用程序生命周期事件及管理OpenGL渲染环境,实现Android平台兼容本地代码OpenGL程序的方法,所述方法包括:通过事件处理模块获取Android应用程序生命周期相关事件,并通过所述事件处理模块进行事件封装后,传递给本地前后台管理模块对应用程序生命周期进行同步管理,实现了对生命周期相关事件的捕捉,并对事件数据进行封装以及将队列送入等待处理。通过OpenGL环境管理模块自动管理OpenGL环境相关的初始化、销毁、资源的释放及重新获取,完成Android窗体管理系统与本地OpenGL环境的无缝对接,解决本地代码OpenGL程序绘制到Android系统Java层窗体的技术问题。在Android应用程序进行前后台切换时,通过所述本地前后台管理模块,自动对OpenGL环境进行控制,所述控制的方式至少包括绘图表面(Surface)的创建和销毁、渲染的暂停和恢复等,保证OpenGL渲染环境的正确性。通过在所述事件处理模块、所述本地前后台管理模块及所述OpenGL环境管理模块中使用线程同步技术,确保Android系统资源管理流程与OpenGL环境管理流程达到一致。所述事件处理模块、所述本地前后台管理模块及所述OpenGL环境管理模块使用Java JNI技术,作为Android Java层与本地代码交互的桥梁,所述事件处理模块、所述本地前后台管理模块及所述OpenGL环境管理模块完全代替开发者完成了 Java与本地代码接口的相互转换。本专利技术利用Java JNI连接C、C++本地代码与Android Java层API,配合系统中所述事件处理模块、所述本地前后台管理模块及所述OpenGL环境管理模块完成数据交换与生命周期处理,从而实现完善的Android本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/201410238502.html" title="Android平台兼容本地代码OpenGL程序的系统及方法原文来自X技术">Android平台兼容本地代码OpenGL程序的系统及方法</a>

【技术保护点】
一种获取和传递Android应用程序生命周期事件及管理OpenGL渲染环境,以实现Android平台兼容本地代码OpenGL程序的系统,包括:事件处理模块、本地前后台管理模块及OpenGL环境管理模块,其中,事件处理模块,用于将获取到的事件封装成可供底层识别的数据格式,并将所述事件数据保存到队列中等待所述本地前后台管理模块进行处理;本地前后台管理模块,用于从所述事件处理模块获取事件数据,同步Android应用主线程与OpenGL处理线程,并通知所述OpenGL环境管理模块进行相应处理;OpenGL环境管理模块,用于管理OpenGL环境相关的初始化、销毁以及资源的释放和重新获取。

【技术特征摘要】
1.一种获取和传递Android应用程序生命周期事件及管理OpenGL渲染环境,以实现Android平台兼容本地代码OpenGL程序的系统,包括:事件处理模块、本地前后台管理模块及OpenGL环境管理模块,其中, 事件处理模块,用于将获取到的事件封装成可供底层识别的数据格式,并将所述事件数据保存到队列中等待所述本地前后台管理模块进行处理; 本地前后台管理模块,用于从所述事件处理模块获取事件数据,同步Android应用主线程与OpenGL处理线程,并通知所述OpenGL环境管理模块进行相应处理; OpenGL环境管理模块,用于管理OpenGL环境相关的初始化、销毁以及资源的释放和重新获取。2.根据权利要求1所述的系统,其特征在于:所述事件处理模块获取Android应用程序生命周期相关事件,通过所述事件处理模块进行事件封装,并传递给所述本地前后台管理模块对应用程序生命周期进行同步管理。3.根据权利要求1所述的系统,其特征在于:所述OpenGL环境管理模块自动管理OpenGL环境相关的初始化、销毁、资源的释放及重新获取,所述OpenGL环境管理模块完成Android窗体管理系统与本地OpenGL环境的无缝对接。4.根据权利要求1所述的系统,其特征在于:在Android应用进行前后台切换时,所述本地前后台管理模块自动对OpenGL环境进行控制,所述控制的方式至少包括绘图表面(Surface)的创建和销毁、渲染的暂停和恢复。5.根据权利要求1所述的系统,其特征在于:...

【专利技术属性】
技术研发人员:李熊发张帆陈锡林胡军王琴唐骏
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1