[发明专利]一种JNI层的算法进行多实例调用的封装方法和系统有效
申请号: | 201410691198.2 | 申请日: | 2014-11-25 |
公开(公告)号: | CN104407864B | 公开(公告)日: | 2018-02-02 |
发明(设计)人: | 李小朋 | 申请(专利权)人: | 广东欧珀移动通信有限公司 |
主分类号: | G06F9/448 | 分类号: | G06F9/448 |
代理公司: | 北京品源专利代理有限公司11332 | 代理人: | 邓猛烈,胡彬 |
地址: | 523860 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 jni 算法 进行 实例 调用 封装 方法 系统 | ||
技术领域
本发明涉及数据调用领域,尤其涉及一种JNI层的算法进行多实例调用的封装方法和系统。
背景技术
Android系统有时候需要提升执行速度及效率,有些核心的算法,或者在JAVA层执行比较耗时的地方,一般会通过C或者C++来实现部分核心的算法,然后把结果提供给JAVA层,比如对图片进行某些效果处理,在效果处理方面如果能用C++来实现效率和速度都会更快,这样就不可避免地会使用到JNI调用。
在某些场合下可能同时调用JNI的某个算法,这种场景比较多,比如采用JNI实现人脸识别的算法,在图片快速滑动过种中需要进行人脸检测,如果此时检测到人脸的同时此时又去进行人脸编辑(比如美妆)等效果的处理(因为也需要对人脸进行检测),此时就会碰到,如果JNI的算法对象只有单实例时,就会出现只有等第一次人脸检测算法的实例跑完并且销毁该对象时才能进行下一次的人脸识别的算法调用,这样局限性大大提高了。
发明内容
本发明提出了一种JNI层的算法进行多实例调用的封装方法和系统,其通过在JAVA层创建接口类,在JNI层创建算法库及算法库中的对象,为对象赋予指针,并将指针反馈到JAVA层对应的接口类;在JAVA层调用该对象时,直接获取该对象在算法库中的对象指针即可。该封装方式很方便地实现了JNI多实例的创建与调用,封装简单实用。
为实现上述设计,本发明采用以下技术方案:
一方面采用一种JNI层的算法进行多实例调用的封装方法,包括:
JAVA层创建用于与JNI层通信的接口类;
JNI层创建算法库的对象,并为所述对象赋予指针;
根据所述指针创建所述接口类的类对象;
将所述类对象返回到JAVA层保存。
其中,所述接口类中包括一个带参数的构造函数;
所述根据所述指针创建所述接口类的类对象,包括:
通过JNI环境查找到JAVA层中的接口类,获取所述接口类的构造函数;
获取所述对象的指针,将所述指针传到所述构造函数的参数创建一个接口类的类对象。
其中,还包括:
JAVA层调用所述算法库的对象时,基于所述指针通过JNI环境调用算法库中的对象。
其中,所述构造函数的参数的类型为INT型参数。
其中,所述JAVA层的初始化方法为静态方法。
另一方面采用一种JNI层的算法进行多实例调用的封装系统,包括:
接口类创建单元,用于JAVA层创建用于与JNI层通信的接口类;
算法库创建单元,用于JNI层创建算法库的对象,并为所述对象赋予指针;
类对象创建单元,用于根据所述指针创建所述接口类的类对象;
保存封装单元,用于将所述将所述类对象返回到JAVA层保存。
其中,所述接口类中包括一个带参数的构造函数;
所述类对象创建单元,包括:
接口通信模块,用于通过JNI环境查找到JAVA层中的接口类,获取所述接口类的构造函数;
类对象创建模块,用于获取所述对象的指针,将所述指针传到所述构造函数的参数创建一个接口类的类对象。
其中,还包括:
算法调用单元,用于JAVA层调用所述算法库的对象时,基于所述指针通过JNI环境调用算法库中的对象。
其中,所述构造函数的参数的类型为INT型参数。
其中,所述JAVA层的初始化方法为静态方法。
本发明的有益效果在于:通过在JAVA层创建接口类,在JNI层创建算法库及算法库中的对象,为对象赋予指针,并将指针反馈到JAVA层对应的接口类;在JAVA层调用该对象时,直接获取该对象在算法库中的对象指针即可。该封装方式很方便地实现了JNI多实例的创建与调用,封装简单实用。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本发明实施例的内容和这些附图获得其他的附图。
图1是本发明实施例提供的一种JNI层的算法进行多实例调用的封装方法的第一实施例的方法流程图。
图2是本发明实施例提供的一种JNI层的算法进行多实例调用的封装方法的第二实施例的方法流程图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东欧珀移动通信有限公司,未经广东欧珀移动通信有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410691198.2/2.html,转载请声明来源钻瓜专利网。