CN108829378A - 一种应用软件的开发方法、装置及电子设备 - Google Patents

一种应用软件的开发方法、装置及电子设备 Download PDF

Info

Publication number
CN108829378A
CN108829378A CN201810512416.XA CN201810512416A CN108829378A CN 108829378 A CN108829378 A CN 108829378A CN 201810512416 A CN201810512416 A CN 201810512416A CN 108829378 A CN108829378 A CN 108829378A
Authority
CN
China
Prior art keywords
code
module
file
information
functional module
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.)
Granted
Application number
CN201810512416.XA
Other languages
English (en)
Other versions
CN108829378B (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.)
Beijing SF Intra City Technology Co Ltd
Original Assignee
Beijing SF Intra City Technology 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 Beijing SF Intra City Technology Co Ltd filed Critical Beijing SF Intra City Technology Co Ltd
Priority to CN201810512416.XA priority Critical patent/CN108829378B/zh
Publication of CN108829378A publication Critical patent/CN108829378A/zh
Application granted granted Critical
Publication of CN108829378B publication Critical patent/CN108829378B/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/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Stored Programmes (AREA)

Abstract

本发明的实施例公开一种应用程序的开发方法、装置及电子设备,涉及应用软件开发技术领域,能够能够有效提高APP产品开发效率。所述方法包括:将公共功能模块生成应用程序模板工程文件;调用所述模板工程文件;在所述模板工程文件的基础上进行应用软件新功能模块的开发。本发明适用于电子设备应用软件的开发。

Description

一种应用软件的开发方法、装置及电子设备
技术领域
本发明涉及应用软件开发技术领域,尤其涉及一种应用程序的开发方法、装置及电子设备。
背景技术
随着移动互联网的兴起,越来越多的互联网企业、电商平台将应用软件(英文:Application;缩写:App)作为销售的主战场之一。作为多元化发展的互联网企业内部或之间,通常会设有多条业务线,每一条业务线都有相对应的App产品,尽管这些App产品各自的业务功能有所区别,但还是有许多共性的功能模块。例如同一企业内的各业务线使用同一套账户系统,所有App的登录注册功能是高度相似的。
但是,发明人在实现本发明的过程中发现,在APP功能模块越来越同质化的情况下,如果开发一款新的App,例如,上述登录注册功能虽然与其他App中该功能模块相似,但是仍然要重新开发。这就使得在APP开发过程中增加了重复性工作,造成App产品开发效率低下。
发明内容
有鉴于此,本发明实施例提供一种应用软件开发方法、装置及电子设备,能够有效提高APP产品开发效率。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供一种应用程序的开发方法,所述方法包括步骤:
将公共功能模块生成应用程序模板工程文件;
调用所述模板工程文件;
在所述模板工程文件的基础上进行应用软件新功能模块的开发。
可选的,所述将公共功能模块生成应用程序模板工程文件包括:
接收用户对于功能模块选择的触发指令;
根据所述触发指令自动获取所述功能模块对应的代码;
根据所述功能模块对应的代码编辑配置文件;
根据所述配置文件生成应用程序模板工程文件。
可选地,在所述接收用户对于功能模块选择的触发指令之后,根据所述触发指令自动获取所述功能模块对应的代码之前,还包括:解析所述触发指令并保存。
可选的,所述将公共功能模块生成应用程序模板工程文件之前还包括:开发搭建一套Maven代码仓库;所述Maven代码仓库包括:公共功能模块对应的代码;
所述根据所述触发指令自动获取所述功能模块对应的代码包括,从所述Maven代码仓库中获取所述功能模块对应的代码。
可选的,根据所述触发指令自动获取所述功能模块对应的代码还包括:
根据所述触发指令查询预设的数据映射表;所述数据映射表包括功能模块名称、功能模块对应的代码库名称和/或所述代码库在Maven代码仓库的存储地址;
获取所述数据映射表中相应功能模块的数据信息;
根据所述数据信息从Maven代码仓库服务器上获取所述功能模块对应的代码。
可选的,根据所述功能模块对应的代码编辑配置文件包括:
接收应用程序安装环境的第一声明信息;所述安装环境包括安装系统,所述第一声明信息包括:应用程序最低支持的所述系统版本及应用程序所用编译器版本;
接收应用程序依赖相应功能模块的第二声明信息;所述第二声明信息包括:功能模块对应的代码库;
接收所述代码库所依赖的服务器的第三声明信息;所述第三声明信息包括:服务器的名称及所述代码库在所述服务器上的存储地址;
根据所述第一声明信息、第二声明信息及第三声明信息生成配置文件。
可选地,所述接收应用程序依赖相应功能模块的第二声明信息包括:
根据所述预设数据映射表,遍历所述应用程序包括的所有功能模块;
将遍历到的所有功能模块逐个添加至所述第二声明信息中;
更新第二声明信息并生成配置文件。
可选地,所述根据所述配置文件生成应用程序模板工程文件包括:
将所述配置文件及代码输出到指定路径保存成应用程序模板工程文件。
第二方面,本发明实施例提供一种应用软件的开发装置,所述装置包括:
模板工程文件生成模块,用于将公共功能模块生成应用程序模板工程文件;
模板调用模块,用于调用所述模板工程文件;
新功能开发模块,用于在所述模板工程文件的基础上进行应用软件新功能模块的开发。
可选的,所述模板工程文件生成模块包括:
触发指令接收单元,用于接收用户对于功能模块选择的触发指令;
代码获取单元,用于根据所述触发指令自动获取所述功能模块对应的代码;
编辑单元,用于根据所述功能模块对应的代码编辑配置文件;
模板生成单元,用于根据所述配置文件生成应用程序模板工程文件。
可选的,所述模板工程文件生成模块包括还包括:指令解析单元,用于解析所述触发指令并保存。
可选的,所述装置还包括:代码仓库开发模块,开发搭建一套Maven代码仓库;所述Maven代码仓库包括:公共功能模块对应的代码;
所述代码获取单元,具体用于从所述Maven代码仓库中获取所述功能模块对应的代码。
可选地,所述代码获取单元还包括:
查询子单元,用于根据所述触发指令查询预设的数据映射表;所述数据映射表包括功能模块名称、功能模块对应的代码库名称和/或所述代码库在Maven代码仓库的存储地址;
第一获取子单元,用于获取所述数据映射表中相应功能模块的数据信息;
第二获取子单元,用于根据所述数据信息从Maven代码仓库服务器上获取所述功能模块对应的代码。
可选地,所述编辑单元包括:
第一接收子单元,用于接收应用程序安装环境的第一声明信息;所述安装环境包括安装系统,所述第一声明信息包括:应用程序最低支持的所述系统版本及应用程序所用编译器版本;
第二接收子单元,用于接收应用程序依赖相应功能模块的第二声明信息;所述第二声明信息包括:功能模块对应的代码库;
第三接收子单元,用于接收所述代码库所依赖的服务器的第三声明信息;所述第三声明信息包括:服务器的名称及所述代码库在所述服务器上的存储地址;
生成子单元,用于根据所述第一声明信息、第二声明信息及第三声明信息生成配置文件。
可选地,所述第二接收子单元,具体用于,
根据所述预设数据映射表,遍历所述应用程序包括的所有功能模块;
将遍历到的所有功能模块逐个添加至所述第二声明信息中;
更新第二声明信息并生成配置文件。
可选地,所述模板生成单元包括:
输出子单元,用于将所述配置文件及代码输出到指定路径保存成应用程序模板工程文件。
第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行第一方面任一所述的方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述权利要求1至8所述的方法。
本发明实施例提供的一种应用软件的开发方法、装置及电子设备,通过将具有公共功能的模块生成应用程序模板工程文件,调用所述模板工程文件,在所述模板工程文件基础上进行应用软件新功能的开发;开发人员在开发新APP时,直接调用所述模板工程文件,即可完成具有共性功能的模块的开发,无需再重复的从原有的APP中将公共功能模块的代码依次复制到新的APP中,仅需要直接调用所述模板,直接关注并开发新APP的新功能即可完成新APP开发,能够有效提高APP产品的开发效率。
进一步地,本发明实施例提供的应用程序开发方法及装置,还提供了一种APP模板自动生成的方法,包括:接收用户对于功能模块选择的触发指令;根据所述触发指令自动获取所述功能模块对应的代码;根据所述功能模块对应的代码编辑配置文件;根据所述配置文件生成应用程序模板工程文件。在进行APP开发时,仅需要触发相应的功能模块,即可自动生成模板工程文件,无需再通过人工配置,手工逐个重复复制原有的APP中公共功能模块代码。这样,不仅能有效减少开发人员的劳动量,而且还能够降低人工失误造成的产品质量问题的几率;进一步地,该自动化实现方式能有效提高APP产品的开发效率及质量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为现有技术中APP开发涉及公共功能模块的开发方法示意图;
图2为本发明一实施例应用软件开发方法流程示意图;
图3为本发明一实施例中APP模板自动生成方法流程示意图;
图4为本发明一实施例中一APP模板自动生成工具用户操作界面示意图;
图5为本发明又一实施例中应用软件开发方法示意框图;
图6本发明又一实施例APP模板自动生成方法流程示意图;
图7为配置文件一具体实现的程序代码实例;
图8为模板工程文件的目录结构示意图;
图9为本发明一实施例应用软件开发装置结构示意框图;
图10为本发明一实施例中APP模板工程文件自动生成模块结构示意框图;
图11本本发明又一实施例中APP模板工程文件自动生成模块结构示意框图;
图12为本发明电子设备一个实施例的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的技术特征在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在APP开发中,由于新开发的APP有部分功能模块与先前原有的APP有部分功能模块的作用相同,通常称为公共功能模块或共性功能模块。
在本申请之前通常是将公共的功能模块代码进行拆分,在开发新的项目时,开发人员通过人工手段将代码引入自己的项目中。
参看图1所示,为现有技术中APP开发涉及公共功能模块的开发方法示意图;在开发多款具有相同功能的App时,首先需要将原有App的代码根据功能模块进行拆分,然后新开发的App根据自身的需要,引入对应的公共(即相同)功能模块的代码。而每次开发一款新App都要进行重复性的代码引入工作,这就增加了开发人员的劳动量,影响了产品开发的效率。
可以理解的是,图1中只是对现有技术中的方案作简单的示例,实际开发中涉及的公共功能模块是非常多的,这种重复性工作在新项目开发中占据了较大的比重,严重影响了产品的开发效率。
实施例一
参看图2所示,本发明实施例提供了一种应用软件的开发方法,主要用于应用软件的开发中,其具体可用于服务端、客户端等电子设备的应用软件的新开发。作为一种可选的实施方式,所述方法包括步骤:
S11、将公共功能模块生成应用程序模板工程文件;
本步骤中,可以根据新开发的APP的功能与原有APP中具有相同的功能的部分来选择需要将哪些功能模块生成模板工程文件的一部分;例如,在原有的APP中已经有登录、支付等功能模块,新开发的APP中也有所述登录及支付功能,则相应的将所述公共功能模块生成模板工程文件,还可对将所述模板工程文件保存到指定路径,进行开发时可直接调用所述模板,避免每次开发时都重复引入所述公共功能模块代码,提高开发效率。所述生成方式可以通过手工引入代码的方式生成模板工程文件;或者通过自动配置工具自动实现,本实施例具体生成的方法不作限定。
另外,需要说明的是,本文中模板工程文件在表述时,为了简洁、方便也直接以模板二字代称。
S12、调用所述模板工程文件;
本步骤中,可以理解的是,所述模板工程文件的具体调用方式可以是通过第三方插件实现调用,或直接新建模板实现。
S13、在所述模板工程文件的基础上进行应用软件新功能模块的开发。
可以理解的是,本步骤中,所述新功能模块指的是APP开发的新增业务模块。通过在模板工程文件的基础上直接进行应用软件其他新功能的开发,避免了每次开发时,都重复引入各公共功能模块代码的繁琐及花费的劳动量,从而可减少开发人员劳动量,提高产品开发效率。
本发明实施例一种应用软件的开发方法,通过将具有公共功能的模块生成应用程序模板工程文件,调用所述模板工程文件,在所述模板工程文件基础上进行应用软件新功能的开发;开发人员在开发新APP时,直接调用所述模板工程文件,即可完成具有共性功能的模块的开发,无需再重复的从原有的APP中将公共功能模块的代码依次复制到新的APP中,仅需要直接调用所述模板,直接关注并开发新APP的新功能即可完成新APP开发,能够有效提高APP产品的开发效率。
为了清楚说明本发明实施例整体实现方案,参看图5及图7所示,现结合一具体应用实例予以描述如下:
某公司原有一款配送业务的App(简称:全职App),包括登录功能、地图功能、定位功能,这款App的用户是公司的全职配送人员。现在业务发展需要开发一款新的App(简称:兼职App),用户是兼职配送人员。但是功能上与全职App有很多类似,都有登录功能、地图功能、定位功能,只是多了一些例如在线支付等特色功能。
如果是按照现有的做法,负责新App的开发人员需要从全职APP中拷贝公共功能模块对应的代码,将所述代码引入到兼职APP中。由于涉及公共功能模块众多,逐个拷贝相应代码,势必会增加开发人员重复劳动量,而且严重影响了新APP的开发效率。
在将本发明实施例应用软件开发方法引入到新APP项目开发工程后,开发人员无需像以前那样拷贝老App中的代码了,直接通过生成模板工程文件,然后直接调用模板工程文件,在在模板工程的基础上,直接开发在线支付等特有功能即可,这样可以避免大量的重复拷贝代码的工作量,节约开发成本,有效提高开发效率。
实施例二
参看图3、图5及图6所示,在本发明应用软件开发方法的一个实施例中,还提供了一种APP模板自动生成方法,包括:
S21、接收用户对于功能模块选择的触发指令;
本实施例中,用户包括但不仅限于开发人员,所述触发指令包括:点击、触摸、手势控制及文字或图像输入等动作与功能模块之间的交互,通过所述触发指令交互之后,可以通过所述交互获取包括应用名称、所需功能模块名称、包名及生成文件的路径等信息,
在本步骤之后,还可以具体包括:解析所述触发指令并保存。
可以理解的是,通过将所述触发指令进行解析获取所述包括应用名称、依赖(所需)功能模块名称等信息,保存到指定位置,
S22、根据所述触发指令自动获取所述功能模块对应的代码;
本实施例中,所述代码的获取可以是从网络资源上获取,或者从本地下载好的代码库中获取。
本实施例中,作为一可选地实施例,步骤S11、所述将公共功能模块生成应用程序模板工程文件之前还包括:开发搭建一套Maven代码仓库;所述Maven代码仓库包括:公共功能模块对应的代码;
步骤S22、所述根据所述触发指令自动获取所述功能模块对应的代码包括,从所述Maven代码仓库中获取所述功能模块对应的代码。
可以理解的是,Maven代码仓库是Apache公司开发的一款开源免费的项目管理工具。开发人员可以将开发好的程序上传到这里供他人使用,也可以引用别人上传到这里的程序。本实施例中,所述的Maven代码仓库是一套在原有的Maven代码仓库基础上进行二次开发形成的私有Maven代码仓库,例如,根据公司内部APP支付业务的需要,在该仓库内增加了独有的支付功能对应的代码库。
具体的私有Maven代码仓库搭建过程为:用一台主机作为私有Maven的服务器,之后下载安装Maven服务;然后将原有APP公共功能的进行模块化拆分,将各模块对应的代码上传到Maven代码仓库服务上;至此,Maven仓库已经完成搭建。
可以理解的是,模块化拆分是移动客户端开发领域中的一个概念,就是将工程代码根据功能进行拆分,将原来放在一起的代码拆开成多个模块,一个模块对应一个功能。模块化的目的是为了降低程序复杂度,使程序设计、调试和维护等操作简单化。这样每个模块只需要关注自己对应的功能即可,对于开发人员来说,模块化的结构更清晰,开发效率更高。
本实施例中,作为一可选地实施例,步骤S21、所述根据所述触发指令自动获取所述功能模块对应的代码具体还包括:
根据所述触发指令查询预设的数据映射表;所述数据映射表包括功能模块名称、功能模块对应的代码库名称和/或所述代码库在Maven代码仓库的存储地址;
本实施例中,所述数据映射表是用于记录每个功能模块对应代码仓库地址,具体可以如表1所示。
表1
页面展示名称 对应代码库名称 在Maven上的存储地址
登录模块 passLib com.sfexpress.pass:PassUI
支付模块 onlinePayLib com.sfexpress.pay:OnlinePay
获取所述数据映射表中相应功能模块的数据信息;
本实施例中,可以理解的是,所述数据信息包括功能模块名称及其在Maven仓库中的存储地址,根据用户在页面上对功能模块的选择的触发指令,查询数据映射表,找到对应模块的地址。
根据所述数据信息从Maven代码仓库服务器上获取所述功能模块对应的代码。
本实施例中,可以通过访问请求的方式获取所述代码。
S23、根据所述功能模块对应的代码编辑配置文件;
本步骤中,具体还包括步骤:接收应用程序安装环境的第一声明信息;所述安装环境包括安装系统,所述第一声明信息包括:应用程序最低支持的所述系统版本及应用程序所用编译器版本;
接收应用程序依赖相应功能模块的第二声明信息;所述第二声明信息包括:功能模块对应的代码库;
接收所述代码库所依赖的服务器的第三声明信息;所述第三声明信息包括:服务器的名称及所述代码库在所述服务器上的存储地址;
根据所述第一声明信息、第二声明信息及第三声明信息生成配置文件。
本实施例中,可以理解的是,所述系统可以包括:IOS、Android、windows系统等,所述依赖在具体开发环境中,是指一款APP产品中,实现某目的所需要具有的功能模块,例如,新开发一款APP需要实现支付功能,则这款APP达到预定目的就必须依赖于支付功能模块。
为了清楚、完整公开本发明实施例,参看图7所示,展示了一种在Android系统环境下生成配置文件的具体的程序代码实例。
程序中,第1行是一个声明,表明这是一个Android应用。这个可以是固定的,用于表明开发的应用所运行的系统环境。
3到10行是Android的基本配置信息,包括本应用最低支持的Android系统版本,使用的编译器版本等信息。这些信息可以根据需要自行设置,一般每个公司都有自己的一套规范,所以也可以认为是固定的信息。
12到14行是本应用的依赖声明,这个是完全动态的。需要根据实际情况进行配置。例如,功能模块不同,则该依赖声明代码也有所不同;该程序13行声明了passUI这个库,根据前述的数据映射表可以查询得出,本应用需要依赖登录模块;可以理解的是,本程序展示了一个依赖登录模块的配置文件具体实现方式,不能理解为对本实施例的实现方式的限定,也可以依赖其他功能模块的声明,具体的程序代码在此就不一一介绍。
16到18行声明对Maven服务器的依赖,在代码仓库是相同的前提下,这个也是固定的;如果是相应的代码存储在其他的服务器中,则需要声明对其他服务器的依赖。
所述配置文件本质上是一个文本文件,可以通过Java文件操作来动态生成。自动生成配置文件的核心主要就是对依赖声明这部分做编辑,也就是图中12至14行的部分。其他部分可以是固定结构框架,直接写入即可。
本实施例中,作为一可选地实施例,所述接收应用程序依赖相应功能模块的第二声明信息包括:根据所述预设数据映射表,遍历所述应用程序包括的所有功能模块;将遍历到的所有功能模块逐个添加至所述第二声明信息中;更新第二声明信息并生成配置文件。
可以理解的是,前述通过数据映射表中的信息已经获取到了用户需要的功能列表以及每个功能对应的代码路径,在配置文件的依赖声明部分,需要遍历所有APP需要用到的模块,将他们逐条添加到依赖声明中,生成最终的配置文件,也就是前述的程序代码中仅仅是一个功能模块对应的依赖声明程序,需要将所有用到的模块都添加到所述依赖声明部分中,生成配置文件。
S24、根据所述配置文件生成应用程序模板工程文件。
本实施例中,作为一可选实施例,所述根据所述配置文件生成应用程序模板工程文件具体还包括:将所述配置文件及代码输出到指定路径保存成应用程序模板工程文件。
可以理解的是,所述配置文件的编辑可以通过使用Gradle编译工具的androidcreate project命令创建,开发人员在这个目录下使用Java文件输入代码做开发。
参看图8所示,模板工程的文件目录结构中,build.gradle文件就是自动生成的配置文件,包含了依赖的模块信息。app目录下是模板工程的代码。这里是一个空模板,包含依赖的功能模块代码,但是不包含任何业务代码,所述业务代码指的是除了公共功能模块代码之外新增功能的代码,例如,一款APP中包括登录功能与支付功能(假设支付功能在APP开发之前并不存在),其中登录功能为原有的APP中的公共功能模块,支付功能为新开发的业务功能,在app目录下就只包含登录功能模块代码,不包含支付功能模块代码。
gradle目录以及gradle.properties文件是Gradle编译工具的文件,这个对于所有相同系统环境下的应用都是一样的。只需要在系统某个位置存储一份,使用时直接通过Java文件复制操作拷贝到指定路径即可。
为了清楚说明本发明实施例APP模板工程文件自动生成方案及有益效果,参看图5及图7所示,现结合一具体应用实例予以描述如下:
某公司原有一款配送业务的App(简称:全职App),包括登录功能、地图功能、定位功能,这款App的用户是公司的全职配送人员。现在业务发展需要开发一款新的App(简称:兼职App),用户是兼职配送人员。但是功能上与全职App有很多类似,都有登录功能、地图功能、定位功能,只是多了一些例如在线支付等特色功能。
如果是按照现有的做法,负责新App的开发人员需要从全职APP中拷贝公共功能模块对应的代码,将所述代码引入到兼职APP中。由于涉及公共功能模块众多,逐个拷贝相应代码,势必会增加开发人员重复劳动量,而且严重影响了新APP的开发效率。
参看图5所示,在将本发明实施例APP模板自动生成方法引入到新APP项目开发工程后,开发人员无需像以前那样拷贝老App中的代码了,仅需要选择相应的公共功能模块,例如勾选登录功能、地图功能和定位功能,即可自动化生成模板工程文件,然后直接调用该模板进行在线支付功能的开发,通过自动化生成模板方案取代了现有的开发中,手工复制粘贴引入公共功能模块代码,可减少开发人员工作量,提高开发效率。
本发明实施例提供的APP模板自动生成的方法,包括:接收用户对于功能模块选择的触发指令;根据所述触发指令自动获取所述功能模块对应的代码;根据所述功能模块对应的代码编辑配置文件;根据所述配置文件生成应用程序模板工程文件。在进行APP开发时,仅需要触发相应的功能模块,即可自动生成模板工程文件,无需再通过人工配置,手工逐个重复复制原有的APP中公共功能模块代码。这样,不仅能有效减少开发人员的劳动量,而且还能够降低人工失误造成的产品质量问题的几率;进一步地,该自动化生成方式能有效提高APP产品的开发效率及质量。
实施例三
参看图5及9所示,本发明实施例提供一种应用软件开发的装置,所述装置包括:模板工程文件生成模块31,用于将公共功能模块生成应用程序模板工程文件;
模板调用模块32,用于调用所述模板工程文件;
新功能开发模块33,用于在所述模板工程文件的基础上进行应用软件新功能模块的开发。
本发明实施例提供的一种应用软件的开发方法、装置及电子设备,通过将具有公共功能的模块生成应用程序模板工程文件,调用所述模板工程文件,在所述模板工程文件基础上进行应用软件新功能的开发;开发人员在开发新APP时,直接调用所述模板工程文件,即可完成具有共性功能的模块的开发,无需再重复的从原有的APP中将公共功能模块的代码依次复制到新的APP中,仅需要直接调用所述模板,直接关注并开发新APP的新功能即可完成新APP开发,能够有效提高APP产品的开发效率。
参看图6及图10所示,本实施例中,作为一可选的实施例,所述模板工程文件生成模块包括:
触发指令接收单元311,用于接收用户对于功能模块选择的触发指令;
代码获取单元312,用于根据所述触发指令自动获取所述功能模块对应的代码;
编辑单元313,用于根据所述功能模块对应的代码编辑配置文件;
模板生成单元314,用于根据所述配置文件生成应用程序模板工程文件。
参看图4所示,可以理解的是,所述模板工程文件生成模块包括一用户操作界面,用于实现用户与所述模块进行交互,所述用户操作界面可以为一个web网页,根据用户的操作来获取用户的触发指令,例如,用户的触发指令包括点击了某个功能模块,则获取到用户需要哪些功能模块、应用名称等。
本实施例一种应用软件开发装置,提供了一种APP模板自动生成装置,在进行APP开发时,仅需要触发相应的功能模块,即可自动生成模板工程文件,无需再通过人工配置,手工逐个重复复制原有的APP中公共功能模块代码。这样,不仅能有效减少开发人员的劳动量,而且还能够降低人工失误造成的产品质量问题的几率;进一步地,该自动化实现方式能有效提高APP产品的开发效率及质量。
本实施例中,作为一可选的实施例,模板工程文件生成模块314还包括:指令解析单元,用于解析所述触发指令并保存。
本实施例中,作为一可选的实施例,所述装置还包括:代码仓库开发模块,开发搭建一套Maven代码仓库;所述Maven代码仓库包括:公共功能模块对应的代码;
代码获取单元312,具体用于从所述Maven代码仓库中获取所述功能模块对应的代码。
本实施例中,作为一可选的实施例,代码获取单元312还包括:
查询子单元,用于根据所述触发指令查询预设的数据映射表;所述数据映射表包括功能模块名称、功能模块对应的代码库名称和/或所述代码库在Maven代码仓库的存储地址;
第一获取子单元,用于获取所述数据映射表中相应功能模块的数据信息;
第二获取子单元,用于根据所述数据信息从Maven代码仓库服务器上获取所述功能模块对应的代码。
本实施例中,作为一可选的实施例,编辑单元313包括:
第一接收子单元,用于接收应用程序安装环境的第一声明信息;所述安装环境包括安装系统,所述第一声明信息包括:应用程序最低支持的所述系统版本及应用程序所用编译器版本;
第二接收子单元,用于接收应用程序依赖相应功能模块的第二声明信息;所述第二声明信息包括:功能模块对应的代码库;
第三接收子单元,用于接收所述代码库所依赖的服务器的第三声明信息;所述第三声明信息包括:服务器的名称及所述代码库在所述服务器上的存储地址;
生成子单元,用于根据所述第一声明信息、第二声明信息及第三声明信息生成配置文件。
本实施例中,作为一可选的实施例,所述第二接收子单元,具体用于,
根据所述预设数据映射表,遍历所述应用程序包括的所有功能模块;
将遍历到的所有功能模块逐个添加至所述第二声明信息中;
更新第二声明信息并生成配置文件。
参看图11所示,本实施例中,作为一可选的实施例,所述模板生成单元包括:
输出子单元,用于将所述配置文件及代码输出到指定路径保存成应用程序模板工程文件。
需要说明的是,对于前述的各方法或装置实施例,为了简单描述,将其都表述为一系列的动作组合,依据本发明,某些步骤可以采用其他顺序或者同时进行。说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必须的。另外,由于各实施例描述的侧重点有所不同,关联部分可以相互参见。
实施例四
本发明实施例还提供一种电子设备,所述电子设备包含前述任一实施例所述的装置。
图12为本发明电子设备一个实施例的结构示意图,可以实现本发明图1-3所示实施例的流程,如图7所示,上述电子设备可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述电子设备的各个电路或器件供电;存储器43用于存储可执行程序代码;处理器42通过读取存储器43中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行如下操作:
将公共功能模块生成应用程序模板工程文件;
调用所述模板工程文件;
在所述模板工程文件的基础上进行应用软件新功能模块的开发。
处理器42对上述步骤的具体执行过程以及处理器42通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1-3所示实施例的描述,在此不再赘述。
该电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子设备。
本发明实施例还提供了一种存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述权利要求1至8所述的应用软件方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种应用软件的开发方法,其特征在于,所述方法包括步骤:
将公共功能模块生成应用程序模板工程文件;
调用所述模板工程文件;
在所述模板工程文件的基础上进行应用软件新功能模块的开发。
2.根据权利要求1所述的方法,其特征在于,所述将公共功能模块生成应用程序模板工程文件包括:
接收用户对于功能模块选择的触发指令;
根据所述触发指令自动获取所述功能模块对应的代码;
根据所述功能模块对应的代码编辑配置文件;
根据所述配置文件生成应用程序模板工程文件。
3.根据权利要求2所述的方法,其特征在于,在所述接收用户对于功能模块选择的触发指令之后,根据所述触发指令自动获取所述功能模块对应的代码之前,还包括:解析所述触发指令并保存。
4.根据权利要求3所述的方法,其特征在于,所述将公共功能模块生成应用程序模板工程文件之前还包括:开发搭建一套Maven代码仓库;所述Maven代码仓库包括:公共功能模块对应的代码;
所述根据所述触发指令自动获取所述功能模块对应的代码包括,从所述Maven代码仓库中获取所述功能模块对应的代码。
5.根据权利要求4所述的方法,其特征在于,根据所述触发指令自动获取所述功能模块对应的代码还包括:
根据所述触发指令查询预设的数据映射表;所述数据映射表包括功能模块名称、功能模块对应的代码库名称和/或所述代码库在Maven代码仓库的存储地址;
获取所述数据映射表中相应功能模块的数据信息;
根据所述数据信息从Maven代码仓库服务器上获取所述功能模块对应的代码。
6.根据权利要求5所述的方法,其特征在于,根据所述功能模块对应的代码编辑配置文件包括:
接收应用程序安装环境的第一声明信息;所述安装环境包括安装系统,所述第一声明信息包括:应用程序最低支持的所述系统版本及应用程序所用编译器版本;
接收应用程序依赖相应功能模块的第二声明信息;所述第二声明信息包括:功能模块对应的代码库;
接收所述代码库所依赖的服务器的第三声明信息;所述第三声明信息包括:服务器的名称及所述代码库在所述服务器上的存储地址;
根据所述第一声明信息、第二声明信息及第三声明信息生成配置文件。
7.根据权利要求6所述的方法,其特征在于,所述接收应用程序依赖相应功能模块的第二声明信息包括:
根据所述预设数据映射表,遍历所述应用程序包括的所有功能模块;
将遍历到的所有功能模块逐个添加至所述第二声明信息中;
更新第二声明信息并生成配置文件。
8.根据权利要求2所述的方法,其特征在于,所述根据所述配置文件生成应用程序模板工程文件包括:
将所述配置文件及代码输出到指定路径保存成应用程序模板工程文件。
9.一种应用软件开发装置,其特征在于,所述装置包括:
模板工程文件生成模块,用于将公共功能模块生成应用程序模板工程文件;
模板调用模块,用于调用所述模板工程文件;
新功能开发模块,用于在所述模板工程文件的基础上进行应用软件新功能模块的开发。
10.一种电子设备,其特征在于,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行权利要求1至8任一所述的方法。
CN201810512416.XA 2018-05-24 2018-05-24 一种应用软件的开发方法、装置及电子设备 Active CN108829378B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810512416.XA CN108829378B (zh) 2018-05-24 2018-05-24 一种应用软件的开发方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810512416.XA CN108829378B (zh) 2018-05-24 2018-05-24 一种应用软件的开发方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN108829378A true CN108829378A (zh) 2018-11-16
CN108829378B CN108829378B (zh) 2022-06-21

Family

ID=64145911

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810512416.XA Active CN108829378B (zh) 2018-05-24 2018-05-24 一种应用软件的开发方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN108829378B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109683957A (zh) * 2018-11-28 2019-04-26 厦门中控智慧信息技术有限公司 功能扩展的方法及设备
CN109857405A (zh) * 2019-02-02 2019-06-07 Oppo广东移动通信有限公司 应用程序安装包的编译方法、装置、存储介质及终端
CN110334103A (zh) * 2019-05-09 2019-10-15 北京顺丰同城科技有限公司 推荐服务的更新方法、提供装置、访问装置和推荐系统
CN111045717A (zh) * 2019-11-05 2020-04-21 北京奇艺世纪科技有限公司 获取项目依赖包的方法、装置、计算机设备及存储介质
CN111190586A (zh) * 2019-12-16 2020-05-22 腾讯科技(深圳)有限公司 软件开发框架的搭建及使用方法、计算设备和存储介质
CN111221512A (zh) * 2020-01-03 2020-06-02 杭州涂鸦信息技术有限公司 功能模块混用方法、电子设备和存储介质
CN111782191A (zh) * 2020-06-29 2020-10-16 京东数字科技控股有限公司 一种项目工程的创建方法和装置
CN112084747A (zh) * 2020-09-17 2020-12-15 瑞庭网络技术(上海)有限公司 一种资源管理方法、装置、电子设备及存储介质
CN112394920A (zh) * 2020-11-19 2021-02-23 联通智网科技有限公司 一种应用软件开发方法、平台和电子设备
CN113254026A (zh) * 2021-07-19 2021-08-13 国网汇通金财(北京)信息科技有限公司 低代码开发方法及装置
CN113467789A (zh) * 2021-07-21 2021-10-01 山谷网安科技股份有限公司 一种oa软件实施过程中的快速部署功能模块的方法
CN113961292A (zh) * 2021-10-21 2022-01-21 安天科技集团股份有限公司 一种安全产品生成方法、装置、电子设备及储存介质
CN114327613A (zh) * 2021-12-27 2022-04-12 浙江中控技术股份有限公司 一种功能块图程序的生成方法、装置、设备及存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070174814A1 (en) * 2006-01-11 2007-07-26 Bea Systems, Inc. System and method for build script generation in a software development environment
EP2713268A1 (en) * 2012-09-28 2014-04-02 Ricoh Company, Ltd. Method for developing software and system therefor
CN105354037A (zh) * 2015-11-30 2016-02-24 用友优普信息技术有限公司 模块化的软件开发方法及软件开发装置
CN105677302A (zh) * 2014-11-17 2016-06-15 阿里巴巴集团控股有限公司 一种应用程序模块化开发方法以及装置
CN106095408A (zh) * 2016-05-31 2016-11-09 浙江网新恒天软件有限公司 一种数据监控和代码自动生成与部署的系统及方法
WO2016205842A1 (de) * 2015-06-25 2016-12-29 Fts Computertechnik Gmbh Vorrichtung und verfahren zur integration von softwarekomponenten in ein verteiltes zeitgesteuertes echtzeitsystem
CN107066291A (zh) * 2017-02-09 2017-08-18 阿里巴巴集团控股有限公司 软件开发工具包的打包方法、装置及设备、可读介质
WO2017189638A1 (en) * 2016-04-28 2017-11-02 Microsoft Technology Licensing, Llc Application with embedded workflow designer
CN107577469A (zh) * 2017-08-21 2018-01-12 厦门悦讯教育科技有限公司 一种软件打包发布管理方法
CN107748662A (zh) * 2017-11-17 2018-03-02 深圳市泉眼网络科技有限公司 应用程序开发方法、终端及计算机可读存储介质
CN107844299A (zh) * 2017-12-01 2018-03-27 浪潮软件股份有限公司 一种Web应用开发工具的实现方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070174814A1 (en) * 2006-01-11 2007-07-26 Bea Systems, Inc. System and method for build script generation in a software development environment
EP2713268A1 (en) * 2012-09-28 2014-04-02 Ricoh Company, Ltd. Method for developing software and system therefor
CN105677302A (zh) * 2014-11-17 2016-06-15 阿里巴巴集团控股有限公司 一种应用程序模块化开发方法以及装置
WO2016205842A1 (de) * 2015-06-25 2016-12-29 Fts Computertechnik Gmbh Vorrichtung und verfahren zur integration von softwarekomponenten in ein verteiltes zeitgesteuertes echtzeitsystem
CN105354037A (zh) * 2015-11-30 2016-02-24 用友优普信息技术有限公司 模块化的软件开发方法及软件开发装置
WO2017189638A1 (en) * 2016-04-28 2017-11-02 Microsoft Technology Licensing, Llc Application with embedded workflow designer
CN106095408A (zh) * 2016-05-31 2016-11-09 浙江网新恒天软件有限公司 一种数据监控和代码自动生成与部署的系统及方法
CN107066291A (zh) * 2017-02-09 2017-08-18 阿里巴巴集团控股有限公司 软件开发工具包的打包方法、装置及设备、可读介质
CN107577469A (zh) * 2017-08-21 2018-01-12 厦门悦讯教育科技有限公司 一种软件打包发布管理方法
CN107748662A (zh) * 2017-11-17 2018-03-02 深圳市泉眼网络科技有限公司 应用程序开发方法、终端及计算机可读存储介质
CN107844299A (zh) * 2017-12-01 2018-03-27 浪潮软件股份有限公司 一种Web应用开发工具的实现方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
XIONG ZHEN-HAI: "Automatic updating method based on Maven", 《2014 9TH INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE & EDUCATION》 *
任玉双等: "基于复用的多级资源库ARMS平台的应用", 《微型机与应用》 *
周帮等: "一种面向GNSS应用的数据共享平台实现方法", 《全球定位系统》 *

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109683957A (zh) * 2018-11-28 2019-04-26 厦门中控智慧信息技术有限公司 功能扩展的方法及设备
CN109857405A (zh) * 2019-02-02 2019-06-07 Oppo广东移动通信有限公司 应用程序安装包的编译方法、装置、存储介质及终端
CN110334103B (zh) * 2019-05-09 2021-11-02 北京顺丰同城科技有限公司 推荐服务的更新方法、提供装置、访问装置和推荐系统
CN110334103A (zh) * 2019-05-09 2019-10-15 北京顺丰同城科技有限公司 推荐服务的更新方法、提供装置、访问装置和推荐系统
CN111045717A (zh) * 2019-11-05 2020-04-21 北京奇艺世纪科技有限公司 获取项目依赖包的方法、装置、计算机设备及存储介质
CN111045717B (zh) * 2019-11-05 2024-01-16 北京奇艺世纪科技有限公司 获取项目依赖包的方法、装置、计算机设备及存储介质
CN111190586A (zh) * 2019-12-16 2020-05-22 腾讯科技(深圳)有限公司 软件开发框架的搭建及使用方法、计算设备和存储介质
CN111221512B (zh) * 2020-01-03 2023-12-05 杭州涂鸦信息技术有限公司 功能模块混用方法、电子设备和存储介质
CN111221512A (zh) * 2020-01-03 2020-06-02 杭州涂鸦信息技术有限公司 功能模块混用方法、电子设备和存储介质
CN111782191A (zh) * 2020-06-29 2020-10-16 京东数字科技控股有限公司 一种项目工程的创建方法和装置
CN112084747A (zh) * 2020-09-17 2020-12-15 瑞庭网络技术(上海)有限公司 一种资源管理方法、装置、电子设备及存储介质
CN112084747B (zh) * 2020-09-17 2024-02-02 瑞庭网络技术(上海)有限公司 一种资源管理方法、装置、电子设备及存储介质
CN112394920A (zh) * 2020-11-19 2021-02-23 联通智网科技有限公司 一种应用软件开发方法、平台和电子设备
CN112394920B (zh) * 2020-11-19 2024-03-29 联通智网科技股份有限公司 一种应用软件开发方法、平台和电子设备
CN113254026A (zh) * 2021-07-19 2021-08-13 国网汇通金财(北京)信息科技有限公司 低代码开发方法及装置
CN113254026B (zh) * 2021-07-19 2021-10-01 国网汇通金财(北京)信息科技有限公司 低代码开发方法及装置
CN113467789A (zh) * 2021-07-21 2021-10-01 山谷网安科技股份有限公司 一种oa软件实施过程中的快速部署功能模块的方法
CN113961292A (zh) * 2021-10-21 2022-01-21 安天科技集团股份有限公司 一种安全产品生成方法、装置、电子设备及储存介质
CN113961292B (zh) * 2021-10-21 2024-03-26 安天科技集团股份有限公司 一种安全产品生成方法、装置、电子设备及储存介质
CN114327613A (zh) * 2021-12-27 2022-04-12 浙江中控技术股份有限公司 一种功能块图程序的生成方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN108829378B (zh) 2022-06-21

Similar Documents

Publication Publication Date Title
CN108829378A (zh) 一种应用软件的开发方法、装置及电子设备
CN108279932B (zh) 一种移动终端动态配置用户界面方法和装置
CN108170612B (zh) 一种自动化测试方法、装置及服务器
CN104346146B (zh) 一种跨平台转换应用代码的方法及装置
CN108786112B (zh) 一种应用场景配置方法、装置和存储介质
CN104615462B (zh) 跨平台的移动应用生成服务端及系统
CN102193812B (zh) 一种代码编译方法、主机及系统
CN105912473A (zh) 基于bdd的移动app自动测试平台和测试方法
CN110244967A (zh) 版本更新方法及装置
CN111881042A (zh) 自动化测试脚本的生成方法、装置和电子设备
CN104007984A (zh) 一种转换数据的方法及装置
CN110059456A (zh) 代码保护方法、代码保护装置、存储介质与电子设备
CN112463634A (zh) 微服务架构下的软件测试方法及装置
CN108776592A (zh) 一种页面构建的方法、装置、设备及存储介质
CN104808982A (zh) 应用的功能模拟开发方法和装置
CN102567517A (zh) 发布数据库数据的装置和方法
CN115630835A (zh) 一种基于Activity的工作流通用参数配置方法及系统
CN106776266A (zh) 测试工具的配置方法及终端设备
CN111309624A (zh) 测试方法、装置、设备及存储介质
CN111078424A (zh) 一种信息交互方法、装置、计算机设备和存储介质
CN112131230B (zh) 应用SaaS化实现方法、装置、设备及存储介质
CN109543122B (zh) 内容同步方法、装置、存储介质及电子装置
CN109062578B (zh) 一种基于app组件化的开发平台
CN113268232A (zh) 一种页面皮肤生成方法、装置和计算机可读存储介质
CN107092472A (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