CN112114789B - 一种业务开发方法及设备 - Google Patents

一种业务开发方法及设备 Download PDF

Info

Publication number
CN112114789B
CN112114789B CN201910537154.7A CN201910537154A CN112114789B CN 112114789 B CN112114789 B CN 112114789B CN 201910537154 A CN201910537154 A CN 201910537154A CN 112114789 B CN112114789 B CN 112114789B
Authority
CN
China
Prior art keywords
service development
interface
platform
service
development
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910537154.7A
Other languages
English (en)
Other versions
CN112114789A (zh
Inventor
陈宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910537154.7A priority Critical patent/CN112114789B/zh
Publication of CN112114789A publication Critical patent/CN112114789A/zh
Application granted granted Critical
Publication of CN112114789B publication Critical patent/CN112114789B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Abstract

本发明公开了一种业务开发方法及设备,该方法包括:接收以第一编程语言编写的源业务开发代码,源业务开发代码采用第一接口为调用接口;从多个待业务开发平台中确定至少一个目标业务开发平台,根据至少一个目标业务开发平台和第一接口确定至少一个第二接口,第二接口为目标业务开发平台中与第一接口功能相同的调用接口;根据源业务开发代码,生成针对所述目标业务开发平台的第二编程语言的原生业务开发代码,并发送到目标业务开发平台进行测试,所述原生业务开发代码采用第二接口为调用接口。本发明可以让开发人员对待开发业务只开发一次,实现应用于多个待开发业务平台,大大减少了开发的时间成本和人力成本,提高了开发效率。

Description

一种业务开发方法及设备
技术领域
本发明涉及软件开发技术领域,尤其涉及一种业务开发方法及设备。
背景技术
传统的移动端开发,相同的功能需要开发者针对IOS和安卓平台分别开发,这种开发方式存在以下缺点:1、开发成本较高,不同的平台必须维护不同的代码,人力成本也会随之增加;2、有新的功能需要更新时,只能进行版本升级;3、经常出现功能开发完毕后,在两个平台上的实际运行逻辑并不完全一致。
随着移动互联网的高速发展,在很多的业务场景下,传统的开发已经不能满足日益增长的业务需求,主要表现在以下两个方面:1.应用动态化的需求增大;当需求发生变化,或者是需要增加新的功能时,传统的开发只能通过版本的升级来更新内容,然而应用的上架和审核都需要一定的时间。2.业务需求变化快,开发成本变高。原生开发一般需要技术团队对IOS和安卓两个平台进行维护,当版本更新迭代时,开发和测试的成本都会增加。
发明内容
有鉴于此,本发明实施例提供一种业务开发方法及设备,至少解决了现有技术中在进行跨平台的业务开发存在的开发效率低及开发成本高的问题。
本发明实施例的一种业务开发方法,所述方法包括:
接收以第一编程语言编写的源业务开发代码,所述源业务开发代码采用第一接口为调用接口;
从多个待业务开发平台中确定至少一个目标业务开发平台,根据所述至少一个目标业务开发平台和所述第一接口确定至少一个第二接口,所述第二接口为目标业务开发平台中与所述第一接口功能相同的调用接口;
根据所述源业务开发代码,生成针对所述目标业务开发平台的第二编程语言的原生业务开发代码,并发送到目标业务开发平台进行测试,所述原生业务开发代码采用第二接口为调用接口。
第二方面,本发明实施例提供了一种业务生成设备,包括:
接收模块,用于接收以第一编程语言编写的源业务开发代码,所述源业务开发代码采用第一接口为调用接口;
确定模块,用于从多个待业务开发平台中确定至少一个目标业务开发平台,根据所述至少一个目标业务开发平台和所述第一接口确定至少一个第二接口,所述第二接口为目标业务开发平台中与所述第一接口功能相同的调用接口;
生成模块,用于根据所述源业务开发代码,生成针对所述目标业务开发平台的第二编程语言的原生业务开发代码,并发送到目标业务开发平台进行测试,所述原生业务开发代码采用第二接口为调用接口。
可选的,所述生成模块还用于:
将测试结果正常的源业务开发代码通过语言编译器,翻译为所述原生开发业务代码,并下载到所述目标业务开发平台进行安装。
可选的,每个第一接口为对不同目标业务开发平台中的功能相同的第二接口,用第二编程语言进行统一封装得到的调用接口。
可选地,该设备还包括:
识别模块,用于连接到至少一个目标业务开发平台后,识别所述各目标业务开发平台的第二编程语言的第二接口;
连接模块,用于确定与所述第二接口功能相同的第一接口,并建立所述第一接口与第二接口之间的映射关系。
可选地,所述相同功能的第一接口和第二接口包括如下至少一种:
用于在所述目标业务开发平台上调用系统能力的系统应用程序接口;
用于在所述目标业务开发平台上调用APP基础能力的业务框架应用程序接口。
可选的,所述源业务开发代码包括如下至少一种:
基于所述目标业务平台的系统能力开发的新业务的源业务开发代码;或者
基于所述目标业务开发平台的系统能力和APP基础能力,开发的扩展业务的源业务开发代码。
可选地,所述第一编程语言为kotlin。
所述待业务开发平台包括如下至少一种:IOS平台、安卓平台、Blackberry平台、WebOS平台、Symbian平台。
第三方面,本发明实施例提供一种业务开发设备,包括:存储器和处理器,其中,所述存储器,用于存储计算机指令;所述处理器,用于执行所述计算机指令以实现本发明实施例提供的业务开发方法。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令被处理器执行时实现本发明实施例提供的业务开发方法。
采用本发明实施例,可以让开发人员对待开发业务只开发一次,可以实现应用于多个待开发业务平台,解决了现有技术中相同的功能需要针对不同待开发业务平台分别开发,开发效率低,开发成本高的技术问题,大大减少了开发的时间成本和人力成本,提高了开发效率,降低了开发成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中提供的一种业务开发的系统构架示意图;
图2为本发明实施例中提供的一种业务开发方法流程图;
图3为本发明实施例中业务开发设备的软件功能模块示意图;
图4为本发明实施例中IOS系统适配层/安卓系统适配层识别不同系统中的系统API并与kotlin调用接口建立映射关系的示意图;
图5为本发明实施例中IOS系统适配层/安卓系统适配层识别不同业务框架API并与kotlin调用接口建立映射关系的示意图;
图6为本发明实施例中业务开发设备与平台设备交互的业务开发详细流程图;
图7为本发明实施例中提供的一种业务开发设备的结构示意图;
图8为本发明实施例中提供的另一种业务开发设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先对本发明可能涉及到的名称或术语进行解释:
跨平台:跨平台概念是软件开发中一个重要的概念,即不依赖于操作系统,也不依赖硬件环境,一个操作系统下开发的应用,放到另一个操作系统下依然可以运行。
原生开发:在对应平台上使用平台对应的开发语言、平台特性和工程结构的开发方式。
Kotlin:一种静态语言,支持多种平台,包括移动端、服务端以及浏览器端用这种语言开发的程序经过特定的编译器处理后,会变成原生平台的原生代码运行,进而能直接使用原生平台的一切特性。
为了更好理解本发明实施例公开的一种业务开发方法、业务开发设备,下面先对本发明实施例适用的系统构架进行描述。
请参阅图1,图1是本发明实施例提供的业务开发的系统构架示意图。如图1所示,该系统构架示意图可以包括业务开发设备101、以及目标业务开发平台102,其中,业务开发设备和目标业务开发平台可以通过网络连接,也可以直接通过接口有线连接,业务开发设备接收开发人员以第一编程语言编写的开发代码,第一编程语言中的调用接口以第一编程语言的语言逻辑和语法进行封装,开发人员可以不用考虑平台的差异性进行开发,以实现针对目标业务开发平台的开发,开发过程中可以根据所述源业务开发代码生成针对自身平台的原生业务开发代码,并发送到目标业务开发平台运行测试结果。该业务开发设备和开发人员都可以为用于软件开发的计算机,该待业务开发平台可以包括但不限于IOS平台、安卓平台、Blackberry平台、WebOS平台、Symbian平台等平台。
本发明实施例提供的业务开发的系统中,对于不同的目标业务开发平台,每个目标业务开发平台在平台设备出厂时具备了相应的系统能力及APP基础能力,其中通过调用系统应用程序接口API来调用系统能力,通过调用业务框架应用程序接口API来调用APP基础能力。
作为一种可选的实施方式,不同的目标业务开发平台可以但不限于包括以下系统API:
网络API,用于调用系统的建立网络连接及关闭网络连接的功能;
IO API,用于调用系统的输入输出功能;
UI控件API,用于调用系统的用户界面功能;
系统事件通知API,用于调用系统的系统事件通知功能;
基础组件API,用于调用系统的基础组件功能;
线程调度API,用于调用系统的线程调度功能;
应用生命周期API,用于调用系统的应用生命周期功能;
上述系统API仅是示意性举例说明,实际的目标业务开发平台的系统API不限于此,上述系统API在平台设备出厂时已经固化好的,在业务开发过程中不可以更改,但可以系统API调用相应的系统能力来实现对应业务的开发,具体示例如下:
需要开发的业务功能为:发送指定内容到指定网络服务器。
则在该业务开发过程中系统API调用顺序如下:
1)通过IO API调用输入功能输入指定内容;
2)通过网络API调用建立网络连接功能来建立网络连接;
3)通过IO API调用输出功能通过建立的网络连接发送指定内容;
4)发送完毕后通过网络API调用关闭网络连接功能来关闭网络连接。
作为一种可选的实施方式,不同的目标业务开发平台可以但不限于包括以下业务框架应用程序接口:
前进后退API,用于调用前进后退的基础能力;
页面生命周期API,用于调用页面生命周期的基础能力;
文件管理API,用于调用文件管理的基础能力;
数据管理API,用于调用数据管理的基础能力;
统计API,用于调用统计功能的基础能力;
信息发送API,用于调用信息发送的基础能力。
上述业务框架API仅是示意性举例说明,实际的目标业务开发平台的业务框架API不限于此,上述业务框架API在平台设备出厂时已经固化好的,在业务开发过程中可以基于基本的业务框架进行业务功能扩展,开发扩展的APP业务功能,需要说明的是,在基于上述业务框架API调用APP基础能力开发对应的业务时,一定会调用相应的系统能力,即可以理解为系统能力是业务开发的基础,综上所述,业务开发具有两种类型:
类型一,完全基于系统能力开发一个新的APP业务功能;
类型二,基于系统能力和APP基础能力,开发一个扩展的APP业务功能。
对于类型一,上面给出了一个简单的示例,对于类型二,下面也给出一个简单的示例:
假设目标业务开发平台上安装有微信APP,具有基础能力-发送**到指定网络服务,想进一步在微信上扩展发送指定内容到指定网络服务的能力,上述**的内容不包含指定内容,则在业务开发过程中,API调用过程如下:
1)首先通过相应的业务框架API,调用微信的基础能力-发送**到指定网络服务的能力,其中在调用微信的基础能力的同时还调用系统能力:
通过网络API调用建立网络连接功能来建立网络连接;
通过IO API调用输入功能,在**的内容中增加指定内容;
通过IO API调用输出功能通过建立的网络连接发送指定内容;
发送完毕后通过网络API调用关闭网络连接功能来关闭网络连接。
可见,在调用发送**到指定网络服务的能力时,必然会调用上述通过网络API调用建立网络连接功能来建立网络连接。
对于不同的目标业务开发平台,系统能力和APP基础能力,大体上基本相同,但对于调用系统能力的系统API和调用APP基础能力的业务框架API,会存在语法或语言逻辑及细节功能等方面的差异,如果在本地的平台上进行业务开发,需要考虑这些差异性,因此开发时间长开发成本高,基于此,本发明实施例提供了一种业务开发方法,如图2所示,包括:
步骤201,接收以第一编程语言编写的源业务开发代码,所述源业务开发代码采用第一接口为调用接口;
上述第一编程语言可以但不限于为kotlin语言,Kotlin语言是一种用于现代多平台应用的静态编程语言,作为一种跨平台的语言,使用Kotlin语言开发的程序经过特定的编译器处理后,会变成原生平台的原生代码运行,进而能直接使用原生平台的一切特性。
步骤202,从多个待业务开发平台中确定至少一个目标业务开发平台,根据所述至少一个目标业务开发平台和所述第一接口确定至少一个第二接口,所述第二接口为目标业务开发平台中与所述第一接口功能相同的调用接口;
上述从多个待业务开发平台中确定至少一个目标业务开发平台,是与当前业务开发设备连接的目标业务开发平台。
实施中,在进行业务开发时,可以连接一个目标业务开发平台实现对该目标业务开发平台开发,也可以同时连接多个目标业务开发平台,实现同时对多个目标业务开发平台进行业务开发,例如同时连接IOS平台和安卓平台。
步骤203,根据所述源业务开发代码,生成针对所述目标业务开发平台的第二编程语言的原生业务开发代码,并发送到目标业务开发平台进行测试,所述原生业务开发代码采用第二接口为调用接口。
利用本发明实施例提供的业务开发方法,针对不同的目标业务开发平台,统一采用第一编程语言进行源业务开发代码编写,由于源业务开发代码采用第一编程语言的API,因此对于不同平台的相同功能的系统API和业务框架API,不需要考虑平台上语法和逻辑及细节功能等的差异性,仅需要按照第一编程语言的语法和逻辑将系统API和业务框架API进行统一封装,同时,需要建立第一编程语言的API和其他不同平台上相同功能的API之间的映射关系,从而在生成源开发业务代码的时候,可以进行平台语言翻译,在翻译过程将第一编程语言的接口转换为平台语言的接口,从而生成对应平台的原生业务代码,将原生业务代码发送到目标业务平台上运行进行代码测试,根据测试结果进行源业务开发代码调试,直至测试结果正确。
将原生业务开发代码发送到目标业务平台进行测试,对于如何确定测试结果,一种可能的情况是,目标业务平台直接通过接口以有线方式连接目标业务开发设备,则开发人员在业务开发设备上编写源业务开发代码的同时,可以同步看到目标业务平台上测试结果;另一种可能的情况是,目标业务平台通过网络连接远程连接目标业务开发设备,则将原生业务开发代码发送到目标业务平台进行测试后,需要目标业务平台反馈测试结果,根据反馈的测试结果进行源业务开发代码调试。
将测试结果正常的源业务开发代码通过语言编译器,翻译为所述原生开发业务代码并形成安装包,将安装包下载到所述目标业务开发平台进行安装。
如果源开发代码采用kotlin语言编写,则通过kotlin编译器,将所述源开发代码转换成针对所述目标业务开发平台的原生开发代码,在转换的过程中,将所述源开发代码所调用的第一接口转换为目标业务开发平台的原生接口。
上述每个第一接口为对不同目标业务开发平台中的功能相同的第二接口,用第一编程语言进行统一封装得到的调用接口。例如对于系统kotlin API_1,为对于IOS平台上相同功能的IOS系统API_1及安卓平台上相同功能的安卓系统API_1,按照kotlin编程语言的语法和逻辑等编程特点进行封装得到的调用接口。
本发明实施例中执行上述业务开发方法的业务开发设备,在连接到目标业务开发平台时,需要具备能够识别不同平台上与第一接口功能相同的各第二接口的能力,本发明实施例提供的业务开发方法,还包括:
连接到至少一个目标业务开发平台后,识别所述各目标业务开发平台的第二编程语言的第二接口;
确定与所述第二接口功能相同的第一接口,并建立所述第一接口与第二接口之间的映射关系。
建立第一接口与第二接口之间的映射关系,这样在生成源业务开发的同时,在进行平台语言翻译过程中,可以依据映射关系将第一接口转换成对应的第二接口,从而生成原生业务代码。
需要说明时,在连接多个目标业务开发平台时,可以对与平台建立连接的第一接口进行标识,如标识kotlin API_1既与安卓平台设备的API_1具有映射关系,也与IOS平台设备的API_1具有映射关系,其中特例的情况是,有些第一接口对应的功能仅在安卓平台设备有对应的功能接口,在IOS平台上没有,则根据相应的标识,对于需要调用此类接口的业务代码,需要单独针对某个安卓平台设备开发对应的业务代码。
如前所述,目标业务开发平台上的API包括系统API及业务框架API,本实施例中相同功能的第一接口和第二接口包括如下至少一种:
用于在所述目标业务开发平台上调用系统能力的系统应用程序接口;
用于在所述目标业务开发平台上调用APP基础能力的业务框架应用程序接口。
以业务开发设备连接IOS平台设备和安卓设备为例,如图3所示,为本发明实施例中业务开发设备的软件功能模块示意图,其中:
业务开发层301,业务开发层用于开发者使用适用于多平台开发的编程语言编写开发代码,通过所述业务开发层进行业务开发,没有系统的差异,实现了一套页面代码,多个操作系统使用,可选的,所述适用于多平台开发的编程语言可以但不限于kotlin语言;
采用kotlin作为编程语言时,按照kotlin语言的语法和逻辑预先编译不同功能的kotlin调用接口,不同功能包括系统能力接口和APP基础能力接口。
IOS系统适配层302a,具有接口识别功能和语言翻译功能,一方面,可以在IOS平台设备连接到业务开发设备时,识别IOS平台上的IOS系统API接口,并建立相同功能的IOS系统API接口和系统kotlin调用接口的映射关系;另一方面,可以在源业务开发代码需要发送到IOS平台设备运行测试时,将源业务开发代码进行语言翻译,在翻译的过程中,将系统kotlin调用接口转换成对应的IOS系统API接口,从而生成IOS平台的原生业务开发代码;
安卓系统适配层302b,具有接口识别功能和语言翻译功能,一方面,可以在安卓平台设备连接到业务开发设备时,识别安卓平台上的安卓系统API接口,并建立相同功能的安卓系统API接口和系统kotlin调用接口的映射关系;另一方面,可以在源业务开发代码需要发送到安卓平台设备运行测试时,将源业务开发代码进行语言翻译,在翻译的过程中,将系统kotlin调用接口转换成对应的安卓系统API接口,从而生成安卓平台的原生业务开发代码;
如前所述,IOS平台适配层/安卓平台适配层可以识别的系统API接口,可以但不限于包括如下功能的接口:
网络API,IO API、UI控件API,系统事件通知API;基础组件API;线程调度API;应用生命周期API。
上述IOS/安卓系统适配层主要是实现通过统一方式对操作系统的调用,确保开发者通过待业务开发平台的系统适配层实现和各个平台的SDK(Software Development Kit,软件开发工具包)进行无差别交互,实现操作系统对开发人员透明,开发人员不需要知道底层操作系统的原生接口就可以完成对操作系统功能的调用。
如图4为本发明实施例中IOS系统适配层/安卓系统适配层识别不同系统中的系统API并与kotlin调用接口建立映射关系的示意图。
如图3所示,还包括:IOS业务适配层303a,具有接口识别功能和语言翻译功能,一方面,可以在IOS平台设备连接到业务开发设备时,识别IOS平台上的IOS业务框架API接口,并建立相同功能的IOS业务框架API接口和业务框架kotlin调用接口的映射关系;另一方面,可以在源业务开发代码需要发送到IOS平台设备运行测试时,将源业务开发代码进行语言翻译,在翻译的过程中,将业务框架kotlin调用接口转换成对应的IOS业务框架API接口,从而生成IOS平台的原生业务开发代码;
安卓业务适配层302b,具有接口识别功能和语言翻译功能,一方面,可以在安卓平台设备连接到业务开发设备时,识别安卓平台上的安卓业务框架API接口,并建立相同功能的安卓业务框架API接口和业务框架kotlin调用接口的映射关系;另一方面,可以在源业务开发代码需要发送到安卓平台设备运行测试时,将源业务开发代码进行语言翻译,在翻译的过程中,将业务框架kotlin调用接口转换成对应的安卓业务框架API接口,从而生成安卓平台的原生业务开发代码。
如图5为本发明实施例中IOS系统适配层/安卓系统适配层识别不同业务框架API并与kotlin调用接口建立映射关系的示意图。
具体实现时不限于上述IOS平台和安卓平台,还可以包括其他平台,针对每一个待业务开发平台,都存在一个待业务开发平台的系统适配层和业务适配层,上述系统适配层和业务适配层能够识别对应的API并建立映射关系。
本实施例中针对不同待业务开发平台的基础能力及系统能力相应的API,按照kotlin语言的标准进行统一封装,由于API是业务开发编写的基础,基于同一套接口进行业务代码开发时无需考虑平台上相应功能接口的差异性,使开发人员对操作系统透明,无需过多关注操作系统的差别。
针对每一个待业务开发平台,都存在一个待业务开发平台应用框架适配层,所述待业务开发平台应用框架适配层针对基于待业务开发平台开发过的旧业务,这些业务已经在所述待业务开发平台上演进出了各自的特性以及使用方法,即,分别在不同的待业务开发平台上形成了功能上相同或相近,但使用上完全不相同的应用框架。与待业务开发平台的平台适配层类似,所述待业务开发平台应用框架适配层用于识别每个待业务开发平台各自演进的应用框架,并对应到统一用kotlin语言编写的应用框架接口,使对业务开发时,不需要感知待业务开发平台上不同的应用框架带来的差异。以QQ浏览器为例,可选的,包括但不限于对所有待业务开发平台的多窗口、页面切换、支付、登录等框架分别按照同一规范进行封装得到kotlin接口。
可选的,在本实施例中,预先配置上述IOS系统适配层、安卓系统适配层、IOS业务适配层、安卓业务适配层的功能,生成相应的配置文件,还可以预先配置kotlin调用接口。
下面基于本发明实施例中上述业务开发架构,给出具体的两个示例说明业务开发过程。
示例1
本实施例中业务开发设备中具有配置文件,该配置文件中配置有kotlin语言的系统API和业务框架API,同时配置文件中还配置有用于识别IOS系统/安卓系统中的系统API和业务框架API,及建立与kotlin语言的对应API映射关系的功能,同时具有语言编译功能。
本示例的业务开发类为基于所述目标业务平台的系统能力,开发的新业务的源业务开发代码,开发的新业务为业务功能为:发送指定内容到指定网络服务器。
如图6所示,本实施例的业务开发流程为:
步骤S601,业务开发设备同时连接IOS系统平台设备和安卓系统平台设备;
步骤S602,确定建立连接后,通过配置文件识别IOS系统的系统API和业务框架API,及识别安卓系统的API和业务框架API,建立相同功能的kotlin接口与识别的接口间的映射关系;
步骤S603,接收以kotlin语言编写的源业务开发代码,该源业务开发代码依次调用如下功能的系统kotlin接口:
1)通过IO API调用输入功能输入指定内容;
2)通过网络API调用建立网络连接功能来建立网络连接;
3)通过IO API调用输出功能通过建立的网络连接发送指定内容;
4)发送完毕后通过网络API调用关闭网络连接功能来关闭网络连接。
步骤S604,利用配置文件将源业务开发代码进行语言翻译,在翻译过程中根据之前建立的映射关系,kotlin接口转换为相应的IOS平台的系统接口及安卓平台的系统接口,从而生成IOS平台和安卓平台原生业务代码;
步骤S605,将原生业务代码发送到IOS平台设备和安卓平台设备运行进行测试;
步骤S606,测试结果正常时,将源业务开发代码通过kotlin编译器编译生原生业务代码,并打包形成安装包;
步骤S607,将安装包下载到IOS平台设备和安卓平台设备进行安装。
示例2
本示例的业务开发类为基于所述目标业务平台的系统能力,开发的新业务的源业务开发代码,开发的新业务为业务功能为:发送指定内容到指定网络服务器。
假设目标业务开发平台上安装有微信APP,具有基础能力-发送**到指定网络服务,想进一步在微信上扩展发送指定内容到指定网络服务的能力,上述**的内容不包含指定内容,则具体的开发流程基于与示例1相同,下面仅对不同之处进行说明,其不同之处在于:
步骤S603,接收以kotlin语言编写的源业务开发代码,本示例中该源业务开发代码依次调用如下kotlin接口:
首先通过相应的业务框架API,调用微信的基础能力-发送**到指定网络服务的能力,其中在调用微信的基础能力的同时还调用系统能力:
通过网络API调用建立网络连接功能来建立网络连接;
通过IO API调用输入功能,在**的内容中增加指定内容;
通过IO API调用输出功能通过建立的网络连接发送指定内容;
发送完毕后通过网络API调用关闭网络连接功能来关闭网络连接。
则在步骤S604中,接口转换过程中,除了转换系统API还转换相应的业务框架API。
基于上述实施例,本发明实施例提供了一种业务开发设备,如图7所示,该业务开发设备700至少包括:
接收模块701,用于接收以第一编程语言编写的源业务开发代码,所述源业务开发代码采用第一接口为调用接口;
确定模块702,用于从多个待业务开发平台中确定至少一个目标业务开发平台,根据所述至少一个目标业务开发平台和所述第一接口确定至少一个第二接口,所述第二接口为目标业务开发平台中与所述第一接口功能相同的调用接口;
生成模块703,用于根据所述源业务开发代码,生成针对所述目标业务开发平台的第二编程语言的原生业务开发代码,并发送到目标业务开发平台进行测试,所述原生业务开发代码采用第二接口为调用接口。
可选的,所述生成模块还用于:
将测试结果正常的源业务开发代码通过语言编译器,翻译为所述原生开发业务代码,并下载到所述目标业务开发平台进行安装。
可选的,每个第一接口为对不同目标业务开发平台中的功能相同的第二接口,用第二编程语言进行统一封装得到的调用接口。
可选地,该设备还包括:
识别模块,用于连接到至少一个目标业务开发平台后,识别所述各目标业务开发平台的第二编程语言的第二接口;
连接模块,用于确定与所述第二接口功能相同的第一接口,并建立所述第一接口与第二接口之间的映射关系。
可选地,所述相同功能的第一接口和第二接口包括如下至少一种:
用于在所述目标业务开发平台上调用系统能力的系统应用程序接口;
用于在所述目标业务开发平台上调用APP基础能力的业务框架应用程序接口。
可选的,所述源业务开发代码包括如下至少一种:
基于所述目标业务平台的系统能力开发的新业务的源业务开发代码;或者
基于所述目标业务开发平台的系统能力和APP基础能力,开发的扩展业务的源业务开发代码。
可选地,所述第一编程语言为kotlin。
可选的,所述待业务开发平台包括如下任意一个或多个:IOS平台、安卓平台、Blackberry平台、WebOS平台、Symbian平台。
为了描述的方便,以上各部分按照功能划分为各单元(或模块)分别描述。当然,在实施本申请时可以把各单元(或模块)的功能在同一个或多个软件或硬件中实现。
接下来,介绍根据本申请的一示例性实施方式的用于业务开发的设备。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本申请的业务开发设备可以至少包括处理器和存储器。其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行本说明书中描述的根据本申请各种示例性实施方式的业务开发方法中的步骤。例如,所述处理器可以执行如图2中任一所示的步骤。
下面参照图8来描述根据本申请的这种实施方式的业务开发设备800。图8的业务开发设备800仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图8,业务开发设备800的组件可以包括但不限于:上述至少一个处理器801、上述至少一个存储器802、连接不同系统组件(包括存储器802和处理器801)的总线803。
总线803表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器802可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)8021和/或高速缓存存储器8022,还可以进一步包括只读存储器(ROM)8023。
存储器802还可以包括具有一组(至少一个)程序模块8024的程序/实用工具8025,这样的程序模块8024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
业务开发设备800也可以与一个或多个外部设备804(例如键盘、指向设备等)通信,还可与一个或者多个使得开发人员能与业务开发设备800交互的设备通信,和/或与使得该业务开发设备800能与一个或多个其它计算装置进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口805进行。并且,业务开发设备800还可以通过网络适配器806与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器806通过总线803与用于业务开发设备800的其它模块通信。应当理解,尽管图8中未示出,可以结合业务开发设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在一些可能的实施方式中,本申请提供的业务开发方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的业务开发方法中的步骤,例如,计算机设备可以执行如图5中任一所示的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的业务开发的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算装置上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被命令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在开发人员计算装置上执行、部分地在开发人员设备上执行、作为一个独立的软件包执行、部分在开发人员计算装置上部分在远程计算装置上执行、或者完全在远程计算装置或服务器上执行。在涉及远程计算装置的情形中,远程计算装置可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到开发人员计算装置,或者,可以连接到外部计算装置(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序命令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序命令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的命令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序命令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的命令产生包括命令装置的制造品,该命令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序命令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的命令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (8)

1.一种业务开发方法,其特征在于,包括:
接收以第一编程语言编写的源业务开发代码,所述源业务开发代码采用第一接口为调用接口;
从多个待业务开发平台中确定至少一个目标业务开发平台,根据所述至少一个目标业务开发平台和所述第一接口确定至少一个第二接口,所述第二接口为目标业务开发平台中与所述第一接口功能相同的调用接口,每个第一接口为对不同目标业务开发平台中的功能相同的第二接口,用所述第一编程语言进行统一封装得到的调用接口;
根据所述源业务开发代码,生成针对所述目标业务开发平台的第二编程语言的原生业务开发代码,并发送到目标业务开发平台进行测试,所述原生业务开发代码采用第二接口为调用接口;
其中,每个待业务开发平台存在对应的系统适配层和业务适配层,在所述根据所述源业务开发代码,生成针对所述目标业务开发平台的第二编程语言的原生业务开发代码之前,还包括:
连接到所述至少一个目标业务开发平台后,通过所述至少一个目标业务开发平台各自的系统适配层和业务适配层,识别所述各目标业务开发平台的第二编程语言的第二接口;确定与所述第二接口功能相同的第一接口,并建立所述第一接口与第二接口之间的映射关系,以使在进行平台语言翻译过程中,依据所述映射关系将第一接口转换成对应的第二接口,生成所述原生业务开发代码。
2.根据权利要求1所述的方法,其特征在于,还包括:
将测试结果正常的源业务开发代码通过语言编译器,翻译为所述原生业务开发代码,并下载到所述目标业务开发平台进行安装。
3.根据权利要求1所述的方法,其特征在于,所述相同功能的第一接口和第二接口包括如下至少一种:
用于在所述目标业务开发平台上调用系统能力的系统应用程序接口;
用于在所述目标业务开发平台上调用APP基础能力的业务框架应用程序接口。
4.根据权利要求1所述的方法,其特征在于,所述源业务开发代码包括如下至少一种:
基于所述目标业务开发平台的系统能力开发的新业务的源业务开发代码;或者
基于所述目标业务开发平台的系统能力和APP基础能力,开发的扩展业务的源业务开发代码。
5.根据权利要求1所述的方法,其特征在于,所述第一编程语言为kotlin。
6.根据权利要求1所述的方法,其特征在于,所述待业务开发平台包括如下至少一种:
IOS平台、安卓平台、Blackberry平台、WebOS平台、Symbian平台。
7.一种业务开发设备,其特征在于,包括:
接收模块,用于接收以第一编程语言编写的源业务开发代码,所述源业务开发代码采用第一接口为调用接口;
确定模块,用于从多个待业务开发平台中确定至少一个目标业务开发平台,根据所述至少一个目标业务开发平台和所述第一接口确定至少一个第二接口,所述第二接口为目标业务开发平台中与所述第一接口功能相同的调用接口,每个第一接口为对不同目标业务开发平台中的功能相同的第二接口,用所述第一编程语言进行统一封装得到的调用接口;
生成模块,用于根据所述源业务开发代码,生成针对所述目标业务开发平台的第二编程语言的原生业务开发代码,并发送到目标业务开发平台进行测试,所述原生业务开发代码采用第二接口为调用接口;
其中,每个待业务开发平台存在对应的系统适配层和业务适配层,在所述根据所述源业务开发代码,生成针对所述目标业务开发平台的第二编程语言的原生业务开发代码之前,所述生成模块还用于:
连接到所述至少一个目标业务开发平台后,通过所述至少一个目标业务开发平台各自的系统适配层和业务适配层,识别所述各目标业务开发平台的第二编程语言的第二接口;确定与所述第二接口功能相同的第一接口,并建立所述第一接口与第二接口之间的映射关系,以使在进行平台语言翻译过程中,依据所述映射关系将第一接口转换成对应的第二接口,生成所述原生业务开发代码。
8.一种业务开发设备,其特征在于,包括:存储器和处理器,其中,所述存储器,用于存储计算机指令;所述处理器,用于执行所述计算机指令以实现如权利要求1-6任一项所述的业务开发方法。
CN201910537154.7A 2019-06-20 2019-06-20 一种业务开发方法及设备 Active CN112114789B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910537154.7A CN112114789B (zh) 2019-06-20 2019-06-20 一种业务开发方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910537154.7A CN112114789B (zh) 2019-06-20 2019-06-20 一种业务开发方法及设备

Publications (2)

Publication Number Publication Date
CN112114789A CN112114789A (zh) 2020-12-22
CN112114789B true CN112114789B (zh) 2024-02-06

Family

ID=73795896

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910537154.7A Active CN112114789B (zh) 2019-06-20 2019-06-20 一种业务开发方法及设备

Country Status (1)

Country Link
CN (1) CN112114789B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113360184A (zh) * 2021-06-04 2021-09-07 曙光信息产业(北京)有限公司 多生态间的软件迁移方法、装置、计算机设备及存储介质
CN116346913A (zh) * 2023-02-16 2023-06-27 南京时祺科技有限公司 一种基于大数据信息可区域划分的区块链网络方法
CN117130692B (zh) * 2023-10-23 2024-01-23 成都赛力斯科技有限公司 应用管理方法、装置、电子设备及存储介质

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026238A (en) * 1997-08-18 2000-02-15 Microsoft Corporatrion Interface conversion modules based upon generalized templates for multiple platform computer systems
CN101641690A (zh) * 2007-01-22 2010-02-03 E3网络股份有限公司 用于生成跨平台程序的方法及其中间件平台引擎
CN102063324A (zh) * 2010-12-31 2011-05-18 杭州依赛通信有限公司 一种实现自动化编程的方法及系统
DE102011088268A1 (de) * 2010-12-10 2012-06-14 Atmel Corporation Software-Rahmen und Software-Entwicklungsplattform für Multisensorsysteme
CN103761087A (zh) * 2014-01-03 2014-04-30 北京京东尚科信息技术有限公司 一种移动应用程序跨平台开发方法及装置
KR101437943B1 (ko) * 2013-03-12 2014-11-03 (주)모비인 스마트 플랫폼 장치, 시스템 및 제어 방법
US9182951B1 (en) * 2013-10-04 2015-11-10 Progress Software Corporation Multi-ecosystem application platform as a service (aPaaS)
US9823909B1 (en) * 2014-05-02 2017-11-21 Amazon Technologies, Inc. Program code conversion for cross-platform compatibility
CN107948135A (zh) * 2017-10-31 2018-04-20 贵州白山云科技有限公司 一种支持多种api协议的数据处理方法及装置
CN108563435A (zh) * 2018-04-19 2018-09-21 北京百度网讯科技有限公司 代码生成的方法及装置
CN109254856A (zh) * 2018-08-30 2019-01-22 深圳大势智能科技有限公司 智能pos服务端提供接口给客户端的方法
CN109471693A (zh) * 2018-10-26 2019-03-15 沈阳欧瑞科技有限公司 将专有组件映射到跨平台开发系统的方法、介质及设备
CN109656538A (zh) * 2017-10-11 2019-04-19 阿里巴巴集团控股有限公司 应用程序的生成方法、装置、系统、设备和介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9086931B2 (en) * 2002-11-20 2015-07-21 Purenative Software Corporation System for translating diverse programming languages
US9965259B2 (en) * 2002-11-20 2018-05-08 Purenative Software Corporation System for translating diverse programming languages
US20070169017A1 (en) * 2006-01-13 2007-07-19 Coward Daniel R Method and apparatus for translating an application programming interface (API) call
US20120204161A1 (en) * 2011-02-09 2012-08-09 Particle Code, Inc. Automated Code Map Generation for an Application Programming Interface of a Programming Language
US20140137090A1 (en) * 2012-11-12 2014-05-15 Sgn Games, Inc. System and method of cross-platform software development and compilation
US10459600B2 (en) * 2015-06-24 2019-10-29 Microsoft Technology Licensing, Llc Conversion of platform-independent accessibility logic into platform-specific accessibility functionality

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026238A (en) * 1997-08-18 2000-02-15 Microsoft Corporatrion Interface conversion modules based upon generalized templates for multiple platform computer systems
CN101641690A (zh) * 2007-01-22 2010-02-03 E3网络股份有限公司 用于生成跨平台程序的方法及其中间件平台引擎
DE102011088268A1 (de) * 2010-12-10 2012-06-14 Atmel Corporation Software-Rahmen und Software-Entwicklungsplattform für Multisensorsysteme
CN102063324A (zh) * 2010-12-31 2011-05-18 杭州依赛通信有限公司 一种实现自动化编程的方法及系统
KR101437943B1 (ko) * 2013-03-12 2014-11-03 (주)모비인 스마트 플랫폼 장치, 시스템 및 제어 방법
US9182951B1 (en) * 2013-10-04 2015-11-10 Progress Software Corporation Multi-ecosystem application platform as a service (aPaaS)
CN103761087A (zh) * 2014-01-03 2014-04-30 北京京东尚科信息技术有限公司 一种移动应用程序跨平台开发方法及装置
US9823909B1 (en) * 2014-05-02 2017-11-21 Amazon Technologies, Inc. Program code conversion for cross-platform compatibility
CN109656538A (zh) * 2017-10-11 2019-04-19 阿里巴巴集团控股有限公司 应用程序的生成方法、装置、系统、设备和介质
CN107948135A (zh) * 2017-10-31 2018-04-20 贵州白山云科技有限公司 一种支持多种api协议的数据处理方法及装置
CN108563435A (zh) * 2018-04-19 2018-09-21 北京百度网讯科技有限公司 代码生成的方法及装置
CN109254856A (zh) * 2018-08-30 2019-01-22 深圳大势智能科技有限公司 智能pos服务端提供接口给客户端的方法
CN109471693A (zh) * 2018-10-26 2019-03-15 沈阳欧瑞科技有限公司 将专有组件映射到跨平台开发系统的方法、介质及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于跨平台的移动应用开发框架研究;郭庆东;;电脑知识与技术(第11期);全文 *

Also Published As

Publication number Publication date
CN112114789A (zh) 2020-12-22

Similar Documents

Publication Publication Date Title
CN108345531B (zh) 一种测试方法、装置及系统
US8533691B2 (en) Managing non-common features for program code translation
CN112114789B (zh) 一种业务开发方法及设备
GB2589658A (en) Method and apparatus for running an applet
CN111399840B (zh) 一种模块开发方法及装置
CN112306884A (zh) 程序测试控制、执行方法及其相应的装置、设备、介质
CN110716720A (zh) 一种实现应用热部署的方法和装置
CN113805882A (zh) 应用程序开发的方法、装置、电子设备及存储介质
CN110221840B (zh) 应用程序的功能实现方法及装置、设备及存储介质
CN116149747A (zh) 接口编排方法、装置、电子设备和计算机可读存储介质
CN114328250A (zh) 软件系统自动自检方法、介质和装置
CN113778897A (zh) 接口的自动测试方法、装置、设备及存储介质
CN113709243A (zh) 设备远程控制方法及装置、电子设备和存储介质
AU2016378425B2 (en) Application program running method and apparatus
CN112506793A (zh) 嵌入式软件单元测试方法、系统、可读介质及电子设备
CN109840109B (zh) 用于生成软件开发工具包的方法和装置
CN116166457A (zh) 数据处理方法及相关设备
US10176062B2 (en) Cloud servers and methods for handling dysfunctional cloud services
CN111970349B (zh) 基于远程过程调用的通讯系统、方法、装置、设备及介质
CN113986263A (zh) 代码自动化测试方法、装置、电子设备、存储介质
CN113885841A (zh) 脚本生成的方法、装置、电子设备和可读介质
CN112612474A (zh) 产品移植方法、装置、存储介质和电子设备
CN111880775A (zh) 多模块分层架构实现方法、装置、电子设备、存储介质
CN114816672A (zh) 虚拟机的创建方法、装置、电子设备和存储介质
CN114385159A (zh) 文件处理方法、装置、电子设备及计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant