[发明专利]Android系统基于JNI多线程调用Qt绘图的装置和方法有效
申请号: | 201610819635.3 | 申请日: | 2016-09-12 |
公开(公告)号: | CN107818588B | 公开(公告)日: | 2021-12-28 |
发明(设计)人: | 杨希怀 | 申请(专利权)人: | 深圳市鸿合创新信息技术有限责任公司 |
主分类号: | G06T11/20 | 分类号: | G06T11/20;G06T13/80;G06T1/20 |
代理公司: | 北京风雅颂专利代理有限公司 11403 | 代理人: | 李莎;李弘 |
地址: | 518118 广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | android 系统 基于 jni 多线程 调用 qt 绘图 装置 方法 | ||
1.一种Android系统基于JNI多线程调用Qt绘图类的方法,其特征在于,所述方法包括:
画布初始化步骤,运行Android系统,清空系统内存,进行画布初始化,激活so动态库进行Qt绘图类的调用准备,如果该画布初始化失败,则重新进行so动态库的激活;
线程启动步骤,所述so动态库被成功激活后,在第一语言的环境下同时启动第一线程和第二线程,所述第一线程为图像数据采样线程,第二线程为SurfaceView画图线程;以及
图像绘制步骤,执行所述第一线程的操作,通过画图动作MotionEvent事件,生成坐标点,采用Rect命令根据所生成的坐标点绘制矩形框,并将点坐标float(x,y)加载到so动态库,Qt绘图类根据点坐标float(x,y)进行绘图,同时执行第二线程,利用Android系统自身的SurfaceView进行绘图,并将通过SurfaceView绘制的图面显示在显示器中;
在所述图像绘制步骤中,执行第二线程,利用Android自身的SurfaceView进行绘图的工作包括以下步骤:
SurfaceView根据所述第一线程中通过画图动作MotionEvent生成的Rect向so动态库请求图片数据;
所述so动态库根据Rect生成图片数据并将该图片数据传送给Qt绘图类,Qt绘图类获得所述图片数据,将绘制的结果Qimage传回到so动态库;
所述so动态库将Qimage传给JNI层,进行JNI数据转换;
JNI经过数据转换成Android需要的byte[]数据类型;以及
Android系统自身的SurfaceView根据传来的byte[]数据进行绘图。
2.根据权利要求1所述的方法,其特征在于,所述第一线程的具体执行步骤包括:
在Java类中声明本地方法;
生成扩展名为h的头文件;
编写所述本地方法,从而实现如下方法:该方法的名称与javah命令所生成的头文件中所声明的方法相同;以及
编写mk文件,并自动生成一个so文件。
3.根据权利要求1-2之一所述的方法,其特征在于,通过在Android系统中加载so文件提供的API:void System.load,从而调用所述so动态库文件。
4.根据权利要求1-2之一所述的方法,其特征在于,
采用预设的调用接口实现所述第一语言和第二语言环境的融合,所述第一语言为Java,第二语言为C++,所述预设的调用接口为Java本地接口JNI。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市鸿合创新信息技术有限责任公司,未经深圳市鸿合创新信息技术有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610819635.3/1.html,转载请声明来源钻瓜专利网。