本申请提供一种应用程序的获取方法、装置、设备及存储介质,该方案提供的装置包括交互模块,处理模块,数据模块以及C++编程接口,数据模块中包括采用C++语言定义的多个功能模块。在应用程序开发过程中,交互模块接收采用Java语言输入的调用请求,处理模块根据调用请求,从数据模块中调用至少一个采用C++语言定义的功能模块,并根据该至少一个采用C++语言定义的功能模块生成应用程序。该装置中通过预先定义多个C++定义的功能模块,并提供可以通过Java语言直接调用C++定义的功能模块的接口,在应用程序开发过程中,只需要简短的调用即可实现应用程序的功能,减少开发工作量以及代码量,提高应用程序的开发效率。
【技术实现步骤摘要】
应用程序的获取方法、装置、设备及存储介质
本申请涉及计算机
,尤其涉及一种应用程序的获取方法、装置、设备及存储介质。
技术介绍
随着智能移动设备(例如:智能手机,智能穿戴设备)等越来越广泛地被用于各种生活场景中,而这些移动设备目前采用的主流操作系统就是Android和iOS两大操作系统,其中采用Android操作系统的设备占更大的市场比例,因此Android的应用编程开发占非常重要的地位和开发比例。现有的Andorid主流开发语言是Java,应用开发人员主要利用Andorid的软件开发工具包(SoftwareDevelopmentKit,SDK)和标准Java应用程序编程接口(ApplicationProgrammingInterface,API)来进行应用开发。由于主流的开发语言采用Java语言,Java语言非常容易被逆向反编译,也就是说,编译打包好的应用apk安装包,使用一些解包和反编译工具就很容易被反编译成Java源代码,而且反编译得到的源代码可读性很强,基本上整个app的设计思想和实现方法都很容易被窃取和仿冒。因此,现有技术提供一种方案,将应用程序(application,app)用C++语言和原生开发工具包(AndroidNativeDevelopmentKit,NDK)来实现,这样反编译难度加大,能起到保护app不被逆向工程破解的目的。但是,现有的方案中用C++来实现和Java一样的功能的话,开发人员不得不用Java本地接口(JavaNativeInterface,JNI)的方法,由C++去调用JavaSDK里的API,然而JNI调用比较繁琐,这种方式代码量成倍的增长,导致应用程序的开发效率较低。
技术实现思路
本申请实施例提供一种应用程序的获取方法、装置、设备及存储介质,以解决现有技术提供的程序开发过程中代码量过大导致的应用程序开发效率低的问题。第一方面,本申请实施例提供一种应用程序的获取装置,包括:交互模块,处理模块,数据模块以及C++编程接口;所述数据模块中包括采用C++语言定义的多个功能模块;所述交互模块用于接收采用Java语言输入的调用请求,所述调用请求中包括至少一个模块名称;所述处理模块用于根据所述调用请求,从数据模块中调用与所述至少一个模块名称对应的至少一个采用C++语言定义的功能模块,并根据所述至少一个采用C++语言定义的功能模块生成应用程序。在一种具体实施方式中,所述数据模块包括基础数据单元以及高级数据单元;所述基础数据单元中包括至少一个采用C++语言实现的与Java基础类对应的基础功能模块;所述高级数据单元中包括至少一个采用C++语言实现的与Java高级类对应的高级功能模块。在一种具体实施方式中,所述交互模块还用于接收用户输入的功能模块添加请求;相应的,所述处理模块还用于:根据所述功能模块添加请求,获取输入的C++代码;将所述C++代码进行实例化得到新的功能模块,并将所述新的功能模块添加在所述数据模块中。在一种具体实施方式中,所述装置还包括:Java编程接口,所述Java编程接口用于调用采用Java语言实现的功能模块。在一种具体实施方式中,所述装置还包括:工具模块,具体用于实现以下至少一种功能:Java本地接口JNI函数调用和包装;JNI复杂数据类型转换;基础数据转换;内存自动管理;JNI环境管理。本申请实施例第二方面提供一种应用程序的获取方法,应用于第一方面任一项所述的应用程序的获取装置,所述方法包括:接收采用Java语言输入的调用请求,所述调用请求中包括至少一个模块名称;根据所述调用请求,从数据库中调用与所述至少一个模块名称对应的至少一个采用C++语言定义的功能模块,并根据所述至少一个采用C++语言定义的功能模块生成应用程序;其中,所述数据库中存储有采用C++语言定义的多个功能模块。在一种具体实施方式中,所述采用C++语言定义的多个功能模块包括:至少一个采用C++语言实现的与Java基础类对应的基础功能模块,以及至少一个采用C++语言实现的与Java高级类对应的高级功能模块。在一种具体实施方式中,所述方法还包括:接收用户输入的功能模块添加请求;根据所述功能模块添加请求,获取用户输入的C++代码;将所述C++代码进行实例化得到新的功能模块,并将所述新的功能模块存储在所述数据库中。本申请实施例第三方面提供一种电子设备,包括:处理器;以及,存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行第二方面任一项所述的应用程序的获取方法。本申请实施例第四方面提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现第二方面任一项所述的应用程序的获取方法。本申请实施例提供的应用程序的获取方法、装置、设备及存储介质,该应用程序的获取装置包括交互模块,处理模块,数据模块以及C++编程接口,在应用程序开发过程中,交互模块接收采用Java语言输入的调用请求,处理模块根据调用请求,从数据模块中调用至少一个采用C++语言定义的功能模块,并根据该至少一个采用C++语言定义的功能模块生成应用程序。该装置中通过预先定义多个C++定义的功能模块,并提供可以通过Java语言直接调用C++定义的功能模块的接口,在应用程序开发过程中,只需要简短的调用即可实现应用程序的功能,减少开发工作量以及代码量,提高应用程序的开发效率。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本申请提供的应用程序的获取装置实施例一的框架示意图;图2为本申请提供的应用程序的获取装置实施例二的框架示意图;图3为本申请提供的应用程序的获取装置实施例三的框架示意图;图4为本申请提供的应用程序的获取装置一实例的的框架示意图;图5为本申请提供的应用程序的获取方法实施例一的流程图;图6为本申请提供的应用程序的获取方法实施例二的流程图;图7为本申请提供的电子设备的实体示意图。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在根据本实施例的启示下作出的所有其他实施例,都属于本申请保护的范围。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺本文档来自技高网...
【技术保护点】
1.一种应用程序的获取装置,其特征在于,包括:/n交互模块,处理模块,数据模块以及C++编程接口;/n所述数据模块中包括采用C++语言定义的多个功能模块;/n所述交互模块用于接收采用Java语言输入的调用请求,所述调用请求中包括至少一个模块名称;/n所述处理模块用于根据所述调用请求,从数据模块中调用与所述至少一个模块名称对应的至少一个采用C++语言定义的功能模块,并根据所述至少一个采用C++语言定义的功能模块生成应用程序。/n
【技术特征摘要】
1.一种应用程序的获取装置,其特征在于,包括:
交互模块,处理模块,数据模块以及C++编程接口;
所述数据模块中包括采用C++语言定义的多个功能模块;
所述交互模块用于接收采用Java语言输入的调用请求,所述调用请求中包括至少一个模块名称;
所述处理模块用于根据所述调用请求,从数据模块中调用与所述至少一个模块名称对应的至少一个采用C++语言定义的功能模块,并根据所述至少一个采用C++语言定义的功能模块生成应用程序。
2.根据权利要求1所述的装置,其特征在于,所述数据模块包括基础数据单元以及高级数据单元;
所述基础数据单元中包括至少一个采用C++语言实现的与Java基础类对应的基础功能模块;
所述高级数据单元中包括至少一个采用C++语言实现的与Java高级类对应的高级功能模块。
3.根据权利要求1或2所述的装置,其特征在于,所述交互模块还用于接收用户输入的功能模块添加请求;
相应的,所述处理模块还用于:
根据所述功能模块添加请求,获取输入的C++代码;
将所述C++代码进行实例化得到新的功能模块,并将所述新的功能模块添加在所述数据模块中。
4.根据权利要求1或2所述的装置,其特征在于,所述装置还包括:Java编程接口,所述Java编程接口用于调用采用Java语言实现的功能模块。
5.根据权利要求1或2所述的装置,其特征在于,所述装置还包括:工具模块,具体用于实现以下至少一种功能:
Java本地接口JNI函数调用和包装;
JNI复杂数据类型转...
【专利技术属性】
技术研发人员:夏晓华,王美青,吕军,程建波,
申请(专利权)人:京东数字科技控股有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。