一种适配多种开发语言的软件开发工具包和调用方法[发明专利]

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 202010500481.8
(22)申请日 2020.06.04
(71)申请人 广州鲁邦通物联网科技有限公司
地址 510653 广东省广州市天河区大观中
路95号F315房(仅限办公)(不可作厂
房使用)
(72)发明人 何奎 曹连峰 陶洋 
(74)专利代理机构 广州市科丰知识产权代理事
务所(普通合伙) 44467
代理人 龚元元
(51)Int.Cl.
G06F  8/36(2018.01)
G06F  8/30(2018.01)
(54)发明名称
一种适配多种开发语言的软件开发工具包
调用方法
(57)摘要
本发明属于通信领域,公开了一种适配多种
开发语言的软件开发工具包,包括接口层、核心
动态库;所述接口层含有多种不同语言的接口
API;所述核心动态库采用C或C++语言开发生成,
其内封装有多种不同功能的函数;各接口API通
过不同的工具调用核心动态库的函数。该工具包
包含了接口层、核心动态库,各种不同开发语言
的APP可通过接口层调用不同功能函数,且核心
动态库采用C或C++语言生成,其统一对核心业务
逻辑进行编译加密,实现了对核心业务逻辑统一
加密的目的。此外,本发明还公开了一种不同开
发语言的APP调用核心动态库的方法。权利要求书1页  说明书3页  附图1页CN 111651156 A 2020.09.11
C N  111651156
A
1.一种适配多种开发语言的软件开发工具包,其特征在于,包括接口层、核心动态库;所述接口层含有多种不同语言的接口API;
所述核心动态库采用C或C++语言开发生成,其内封装有多种不同功能的函数;
各接口API通过不同的工具调用核心动态库的函数。
2.根据权利要求1所述的适配多种开发语言的软件开发工具包,其特征在于,所述接口API包括JAVA语言的接口、python语言的接口、C#语言的接口、NodeJs语言的接口中的两种或多种。
3.根据权利要求2所述的适配多种开发语言的软件开发工具包,其特征在于,所述JAVA 语言的接口通过JNI或JNA技术调用核心动态库的函数;所述python语言的接口通过ctypes 模块调用核心动态库的函数;所述NodeJs语言的接口通过ffi技术调用核心动态库的函数。
4.根据权利要求1所述的适配多种开发语言的软件开发工具包,其特征在于,所述核心动态库的多种函数用于分别实现报文压缩、报文加密、注册平台、激活客户端、版本控制、统一数据格式、与平台交互中的两种或多种功能。
5.一种不同开发语言的APP调用核心动态库的方法,其特征在于,所述方法涉及应用APP和如权利要求1-4任一所述软件开发工具包;
所述方法具体为:根据应用APP的开发语言的种类调用接口层中对应的语言的接口API,通过调用接口API调用核心动态库应用APP所需的功能的函数。
权 利 要 求 书1/1页CN 111651156 A
一种适配多种开发语言的软件开发工具包和调用方法
技术领域
[0001]本发明涉及通讯领域,特别是一种适配多种开发语言的软件开发工具包和调用方法。
背景技术
[0002]现有平台针对设备端提供不同语言的软件开发工具包(SDK)都是通过不同的语言,然后封装一套SDK,同样的业务逻辑或功能需要在不同的语言中实现一遍,对于SDK的加密需要根据不同的语言支持力度借助第三方工具进行实现。
[0003]以JAVA语言打包SDK为例,具体可参考网站:
[0004]“blog.csdn/weixin_30565199/article/details/95161643”,其内记载了如何通过JAVA程序去生成一个SDK,包括如下步骤:
[0005]步骤1:将java通过jni生成头文件,并导入到c++项目并对c++进行jni方法继承;[0006]步骤2:c++是多线程回调,需要将当前线程注册到虚拟机中用到AttachCurrentThread;
[0007]步骤3:在java写主调函数和回调函数在主调初始化的时候将回调类做为参数传进去;
[0008]步骤4:将c++动态库回调数据进行处理的可以继承回调类接口;
[0009]步骤5:将项目进行打包并提供动态库给客户。
[0010]由此可见,当任意的不同的开发语言如果要使用动态库,需要通过对应语言进行实现。
[0011]这对于多种不同的开发语言的应用要调用相同或类似的动态库时,造成了大量的重复性的工作。特别是对于动态库提供的厂家来说,如果还需要对动态库中各种功能的函数的实现方法进行加密时,需要采用适用于不同语言的加密手段来进行,其操作难度更大,保密性更差。
[0012]所以,本案所要解决的技术问题是:如何开发出一种可为多种不同开发语言的app 调用的SDK,同时保证其功能函数的破译难度。
发明内容
[0013]本发明的目的是提供一种适配多种开发语言的软件开发工具包,该工具包包含了接口层、核心动态库,各种不同开发语言的APP可通过接口层调用不同功能函数,且核心动态库采用C或C++语言生成,其统一对核心业务逻辑进行编译加密,实现了对核心业务逻辑统一加密的目的。
[0014]此外,本发明还公开了一种不同开发语言的APP调用核心动态库的方法。[0015]本发明提供的技术方案为:一种适配多种开发语言的软件开发工具包,包括接口层、核心动态库;
[0016]所述接口层含有多种不同语言的接口API;
[0017]所述核心动态库采用C或C++语言开发生成,其内封装有多种不同功能的函数;[0018]各接口API通过不同的工具调用核心动态库的函数。
[0019]在上述的适配多种开发语言的软件开发工具包中,所述接口API包括JAVA语言的接口、python语言的接口、C#语言的接口、NodeJs语言的接口中的两种或多种。
[0020]在上述的适配多种开发语言的软件开发工具包中,所述JAVA语言的接口通过JNI 或JNA技术调用核心动态库的函数;所述python语言的接口通过ctypes模块调用核心动态库的函数;所述NodeJs语言的接口通过ffi技术调用核心动态库的函数。
[0021]在上述的适配多种开发语言的软件开发工具包中,所述核心动态库的多种函数用于分别实现报文
压缩、报文加密、注册平台、激活客户端、版本控制、统一数据格式、与平台交互中的两种或多种功能。
[0022]同时,本发明还公开了一种不同开发语言的APP调用核心动态库的方法,所述方法涉及应用APP和如上所述软件开发工具包;
[0023]所述方法具体为:根据应用APP的开发语言的种类调用接口层中对应的语言的接口API,通过调用接口API调用核心动态库应用APP所需的功能的函数。
[0024]本发明在采用上述技术方案后,其具有的有益效果为:
[0025]本方案提出的方案使用户只需要基于接口编程即可实现SDK内部功能的调用,从而解决不同开发语言下相同业务的重复开发问题和对核心业务逻辑统一加密的目的。
附图说明
[0026]图1是本发明实施例1的结构方框图。
具体实施方式
[0027]下面结合具体实施方式,对本发明的技术方案作进一步的详细说明,但不构成对本发明的任何限制。
[0028]实施例1:
[0029]参考图1,一种适配多种开发语言的软件开发工具包,包括接口层、核心动态库;[0030]所述接口层含有多种不同语言的接口API;所述接口API包括JAVA语言的接口、python语言的接口、C#语言的接口、NodeJs语言的接口中的两种或多种;
[0031]所述核心动态库采用C或C++语言开发生成,其内封装有多种不同功能的函数;所述函数用于分别实现报文压缩、报文加密、注册平台、激活客户端、版本控制、统一数据格式、与平台交互中的两种或多种功能。
[0032]其中,各接口API通过不同的工具调用核心动态库的函数,比如:JAVA语言的接口通过JNI或JNA技术调用核心动态库的函数;所述python语言的接口通过ctypes模块调用核心动态库的函数;所述NodeJs语言的接口通过ffi技术调用核心动态库的函数。
[0033]在APP调用相关的软件开发工具包时的具体操作如下:
[0034]以Android手机应用为例,其在需要调用核心数据库的函数时,通过SDK内自带的JAVA语言的接
口(JAVA-API)来调用核心动态库的函数;JAVA-API通过JNI或JNA技术调用基于C或C++语言的核心动态库的函数,优选通过JNA技术。
[0035]Android手机应用如果要调用SDK时,在Android应用中使用SDK流程如下:
[0036]  1.在Android应用中导入sdk包,也可以通过比如Maven,gralde工具自动构建;[0037]  2.在Android应用中通过调用SDK暴露的Java-ApiQueryJava-API对接口进行调用[0038]举例说明,如下:
[0039]比如提供一个查询天气的SDK,具体查询天气的执行操作通过c或c++语言封装并生成了一个.so的库,主要提供queryWeather(city)的方法,然后通过Java语言进行了一次包装Java的WeatherHelp类,对外提供getWeather(String city)的方法,在其内部通过Java-JNI的方式调用.so的queryWeather方法。以上内容更统一被打包成一个weather.jar 的java-sdk提供给Android程序,其调用如下
[0040]  1.在Android中引入weather.jar包(maven构建方式)
[0041]
[0042]  2.直接在应用中通过调用WeatherHelp类的getWeather()方法查询对应城市的天气信息
[0043]
[0044]与Android手机应用同理,IOS应用通过SDK内自带的python语言的接口,python语言的接口中自带ctypes模块,基于ctypes模块,python语言和C或C++语言能够进行数据交互,以此调用核心动态库的函数。
[0045]本发明的优势在于:使用户只需要基于接口编程即可实现SDK内部功能的调用,从而解决不同开发语言下相同业务的重复开发问题和达到对核心业务逻辑统一加密的目的。[0046]上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其它的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

本文发布于:2024-09-20 23:37:20,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/439952.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:语言   核心   调用   接口
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议