掌桥专利:专业的专利平台
掌桥专利
首页

应用程序开发方法、装置、电子设备及机器可读存储介质

文献发布时间:2023-06-19 11:39:06


应用程序开发方法、装置、电子设备及机器可读存储介质

技术领域

本发明涉及计算机应用技术领域,特别是涉及一种应用程序开发方法、装置、电子设备及机器可读存储介质。

背景技术

随着计算机技术的不断发展,人们对智能手机、平板电脑、笔记本电脑等终端设备的使用越来越广泛,对终端设备上安装的应用程序的要求也越来越高。为了满足用户需求,提高用户体验,应用程序的版本更新速度也越来越快。

在应用程序开发过程中,常常需要保留应用程序中用户反馈较好的功能,删除用户反馈较差的功能。当前的应用程序开发过程中,往往需要开发人员基于用户的实际需求,对应用程序进行手动编程,这将导致应用程序的开发流程非常缓慢,效率低下,很难满足用户对应用程序的版本更新需求。

发明内容

本发明实施例的目的在于提供一种应用程序开发方法、装置、电子设备及机器可读存储介质,以提高应用程序的开发效率。具体技术方案如下:

第一方面,本发明实施例提供了一种应用程序开发方法,该方法包括:

获取配置文件;

识别配置文件中的模块依赖配置信息,其中,模块依赖配置信息包括预先设定的应用程序所依赖的各特定功能实现模块的模块标识;

根据模块依赖配置信息,从各特定功能实现模块中获取各功能代码;

将获取的各功能代码进行打包,生成应用程序的安装包。

可选的,根据模块依赖配置信息,从各特定功能实现模块中获取各功能代码的步骤,包括:

调用抽取接口,根据模块依赖配置信息,从各特定功能实现模块中获取各功能代码。

可选的,根据模块依赖配置信息,从各特定功能实现模块中获取各功能代码的步骤,包括:

根据模块依赖配置信息,采用反射方式,从各特定功能实现模块中获取各功能代码。

可选的,在将获取的各功能代码进行打包,生成应用程序的安装包的步骤之后,该方法还包括:

获取功能新增请求,其中,功能新增请求中包括新增功能;

根据新增功能,确定新增功能对应的新增功能实现模块,其中,新增功能实现模块中存储的功能代码可实现新增功能;

将新增功能实现模块的模块标识增加至模块依赖配置信息中;

根据更新后的模块依赖配置信息,从各特定功能实现模块和新增功能实现模块中获取各功能代码;

将获取的各功能代码进行打包,生成更新的应用程序的安装包。

可选的,在将获取的各功能代码进行打包,生成应用程序的安装包的步骤之后,该方法还包括:

获取功能删除请求,其中,功能删除请求中包括待删除功能;

根据待删除功能,确定待删除功能对应的待删除功能实现模块,其中,待删除功能实现模块中存储的功能代码可实现所述待删除功能;

将待删除功能实现模块的模块标识从模块依赖配置信息中删除;

根据更新后的模块依赖配置信息,从除待删除功能实现模块以外的其他各特定功能实现模块中获取各功能代码;

将获取的各功能代码进行打包,生成更新的应用程序的安装包。

第二方面,本发明实施例提供了一种应用程序开发装置,该装置包括:

获取单元,用于获取配置文件;

识别单元,用于识别配置文件中的模块依赖配置信息,其中,模块依赖配置信息包括预先设定的应用程序所依赖的各特定功能实现模块的模块标识;

获取单元,还用于根据模块依赖配置信息,从各特定功能实现模块中获取各功能代码;

打包单元,用于将获取的各功能代码进行打包,生成应用程序的安装包。

可选的,获取单元,具体用于调用抽取接口,根据模块依赖配置信息,从各特定功能实现模块中获取各功能代码。

可选的,获取单元,具体用于根据模块依赖配置信息,采用反射方式,从各特定功能实现模块中获取各功能代码。

可选的,该装置还包括:确定单元、增加单元;

获取单元,还用于获取功能新增请求,其中,功能新增请求中包括新增功能;

确定单元,用于根据新增功能,确定新增功能对应的新增功能实现模块,其中,新增功能实现模块中存储的功能代码可实现新增功能;

增加单元,用于将新增功能实现模块的模块标识增加至模块依赖配置信息中;

获取单元,还用于根据更新后的模块依赖配置信息,从各特定功能实现模块和新增功能实现模块中获取各功能代码;

打包单元,还用于将获取的各功能代码进行打包,生成更新的应用程序的安装包。

可选的,该装置还包括:确定单元、删除单元;

获取单元,还用于获取功能删除请求,其中,功能删除请求中包括待删除功能;

确定单元,用于根据待删除功能,确定待删除功能对应的待删除功能实现模块,其中,待删除功能实现模块中存储的功能代码可实现所述待删除功能;

删除单元,用于将待删除功能实现模块的模块标识从模块依赖配置信息中删除;

获取单元,还用于根据更新后的模块依赖配置信息,从除待删除功能实现模块以外的其他各特定功能实现模块中获取各功能代码;

打包单元,还用于将获取的各功能代码进行打包,生成更新的应用程序的安装包。

第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的计算机程序时,实现本发明实施例第一方面所提供的方法。

第四方面,本发明实施例提供了一种机器可读存储介质,机器可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现本发明实施例第一方面所提供的方法。

第五方面,本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本发明实施例第一方面所提供的方法。

本发明实施例提供的一种应用程序开发方法、装置、电子设备及机器可读存储介质,开发应用程序时,预先在配置文件中设置模块依赖配置信息,即预先设定应用程序所依赖的各特定功能实现模块的模块标识,这些特定功能实现模块中存储着用户希望应用程序能够实现的各功能的功能代码,从而根据配置文件中的模块依赖配置信息,能够从各特定功能实现模块中获取到各功能的功能代码,将这些功能代码进行打包,生成应用程序的安装包,完成应用程序开发。该应用程序开发过程将各功能代码模块化,只需要通过模块调用即可进行应用程序开发,无需开发人员手动编程,从而提高了应用程序的开发效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。

图1为本发明实施例的应用程序开发方法的流程示意图;

图2为本发明实施例的系统架构下应用程序开发的流程示意图;

图3为本发明实施例的iOS系统下应用程序开发的流程示意图;

图4为本发明实施例的应用程序开发装置的结构示意图;

图5为本发明实施例的电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了提高应用程序的开发效率,本发明实施例提供了一种应用程序开发方法、装置、电子设备及机器可读存储介质。

下面,首先对本发明实施例所提供的应用程序开发方法进行介绍。本发明实施例所提供的应用程序开发方法的执行主体可以为具有应用程序开发功能的电子设备。

如图1所示,本发明实施例所提供的一种应用程序开发方法,可以包括如下步骤。

S101,获取配置文件。

S102,识别配置文件中的模块依赖配置信息,其中,模块依赖配置信息包括预先设定的应用程序所依赖的各特定功能实现模块的模块标识。

S103,根据模块依赖配置信息,从各特定功能实现模块中获取各功能代码。

S104,将获取的各功能代码进行打包,生成应用程序的安装包。

应用本发明实施例,开发应用程序时,预先在配置文件中设置模块依赖配置信息,即预先设定应用程序所依赖的各特定功能实现模块的模块标识,这些特定功能实现模块中存储着用户希望应用程序能够实现的各功能的功能代码,从而根据配置文件中的模块依赖配置信息,能够从各特定功能实现模块中获取到各功能的功能代码,将这些功能代码进行打包,生成应用程序的安装包,完成应用程序开发。该应用程序开发过程将各功能代码模块化,只需要通过模块调用即可进行应用程序开发,无需开发人员手动编程,从而提高了应用程序的开发效率。

在进行应用程序开发时,首先会根据开发需求进行配置,在不同的开发环境下,会在不同的软件模块中进行配置,例如在安卓开发环境下,在MainActivity(主模块)中的build.gradle(一种配置文件)中进行配置。

配置文件中包括模块依赖配置信息,模块依赖配置信息包括预先设定的应用程序所依赖的各特定功能实现模块的模块标识,各特定功能实现模块中存储着具体能够实现期望应用程序所具有功能的功能代码。例如,期望应用程序具有视频播放功能,则可以在模块依赖配置信息中设定存储有能实现视频播放功能的功能代码的功能实现模块标识。

因此,通过对配置文件中的模块依赖配置信息进行识别,能够识别出预先设定了哪些模块标识,也就是识别出期望应用程序具有哪些功能。这样,根据模块依赖配置信息,就知道了需要到哪些特定功能实现模块获取功能代码。最后将获取的各功能代码进行打包,即可生成应用程序的安装包。

可见,本发明实施例中,将能够实现具体功能的功能代码存储在不同的功能实现模块中,实现了功能代码的模块化,并且在应用程序开发时,根据实际需求从各特定功能实现模块中获取各功能代码,所获取的各功能代码都能够实现应用程序所需的功能,因此,只需要通过模块调用即可进行应用程序开发,无需开发人员手动编程,从而提高了应用程序的开发效率。

在本发明实施例的一种实现方式中,S103,具体可以为:调用抽取接口,根据模块依赖配置信息,从各特定功能实现模块中获取各功能代码。

由于各特定功能实现模块中的任何代码不能被直接调用,因此,在从各特定功能实现模块中获取各功能代码时,可以通过接口调用的方式获取各功能代码。预先设置有抽取接口,该抽取接口为一种软件接口,具体可以是代码获取函数writeCode(),该抽取接口中并不会定义具体实现,这样,在进行应用程序开发时,主开发程序直接依赖的是抽取接口,而不是各特定功能实现模块,保证了具体实现的功能代码不会被直接调用。

在本发明实施例的一种实现方式中,S103,具体可以为:根据模块依赖配置信息,采用反射方式,从各特定功能实现模块中获取各功能代码。

由于各特定功能实现模块不能直接被依赖,否则会出现编译无法通过的情况,因此,在本发明实施例中,可以采取反射方式,从各特定功能实现模块中获取各功能代码。具体的反射方式,就是指在功能代码的运行状态中,对于功能代码中的任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能调用它的任意一个方法,这种动态获取信息,以及动态调用对象方法的功能叫反射方法,简单来说,通过反射方法,该类是完全透明的,想要获取任何东西都可以。

在本发明实施例的一种实现方式中,在S104之后,该方法还可以包括如下步骤:

第一步,获取功能新增请求,其中,功能新增请求中包括新增功能。

第二步,根据新增功能,确定新增功能对应的新增功能实现模块,其中,新增功能实现模块中存储的功能代码可实现新增功能。

第三步,将新增功能实现模块的模块标识增加至模块依赖配置信息中。

第四步,根据更新后的模块依赖配置信息,从各特定功能实现模块和新增功能实现模块中获取各功能代码。

第五步,将获取的各功能代码进行打包,生成更新的应用程序的安装包。

在应用程序的实际开发中,用户会根据应用程序的实际使用情况,提出增加某些新功能的需求,由于在本发明实施例中功能代码是模块化的,因此,希望能够实现“插”新增功能实现模块。在本发明实施例中,在获取到功能新增请求后,根据其包括的新增功能,可以确定出新增功能对应的新增功能实现模块,并将新增功能实现模块的模块标识增加至模块依赖配置信息中,通过在模块依赖配置信息中引入新增功能实现模块的模块标识,则代表集成了新增功能实现模块。则可根据更新后的模块依赖配置信息,从各特定功能实现模块和新增功能实现模块中获取各功能代码,将获取的各功能代码进行打包,生成更新的应用程序的安装包。即可实现应用程序的更新,增加新增功能。

在本发明实施例的一种实现方式中,在S104之后,该方法还可以包括如下步骤:

第一步,获取功能删除请求,其中,功能删除请求中包括待删除功能。

第二步,根据待删除功能,确定待删除功能对应的待删除功能实现模块,其中,待删除功能实现模块中存储的功能代码可实现所述待删除功能。

第三步,将待删除功能实现模块的模块标识从模块依赖配置信息中删除。

第四步,根据更新后的模块依赖配置信息,从除待删除功能实现模块以外的其他各特定功能实现模块中获取各功能代码。

第五步,将获取的各功能代码进行打包,生成更新的应用程序的安装包。

在应用程序的实际开发中,用户会根据应用程序的实际使用情况,提出删除某些旧功能的需求,由于在本发明实施例中功能代码是模块化的,因此,希望能够实现“拔”待删除功能实现模块。在本发明实施例中,在获取到功能删除请求后,根据其包括的待删除功能,可以确定出待删除功能对应的待删除功能实现模块,并将待删除功能实现模块的模块标识从模块依赖配置信息中删除,通过在模块依赖配置信息中删除待删除功能实现模块的模块标识,则代表不再集成待删除功能实现模块。则可根据更新后的模块依赖配置信息,从除待删除功能实现模块以外的其他各特定功能实现模块中获取各功能代码,将获取的各功能代码进行打包,生成更新的应用程序的安装包。即可实现应用程序的更新,删除待删除功能。

为了便于理解,下面分别以安卓系统和iOS(一种移动操作系统)系统为例,对本发明实施例提供的应用程序开发方法进行介绍。如图2所示,为系统架构下应用程序开发的流程示意图。

系统中定义了的一个写代码的接口,即抽取接口writeCode(),该抽取接口中并没有具体的实现,始终代码抽取功能时依赖该抽取接口,这样可以做到不直接依赖具体的功能实现模块,因为功能实现模块1、2是可插拔的模块。

实现写代码的接口时,可以写具体的功能实现代码,例如XX代码,这是具体实现。例如功能实现模块1去实现抽取接口writeCode(),代码如下:

要获取到具体的功能代码时,比如XX,这个功能代码存储在可插拔的功能实现模块中,模块外部不能直接依赖,否则在该模块移除的时候编译就通不过,因此,只能采取反射方式获取功能代码。定义写代码的类名称为IcommonDeveloper,反射方式的代码如下:

获取具体的功能代码后,执行的就是具体功能代码。

在应用程序主模块中,在打包或运行前需要“插”或者“拔”某个具体功能实现模块时,可在主模块的配置文件中配置引入具体的功能实现模块的模块标识。如果加入了某个功能实现模块的模块标识,则代表集成了该功能实现模块,如果删除了某个功能实现模块的模块标识,则代表不再集成该功能实现模块。因此,只需要修改配置文件中的模块依赖配置信息便可以方便的插拔功能实现模块。

在iOS系统中,任何可插拔的功能实现模块,都需要定义该模块需要的ModuleProtocol(模块协议),在ModuleProtocol内定义模块的通用方法函数。以图3为例,协议实现类为模块A、模块B中的类A和类B,这两个类实现了ModuleProtocol内定义的方法1和方法2。因为不可直接依赖可插拔的功能实现模块,所以需要采用反射的方式获取对象,通过获取的对象直接调用ModuleProtocol内定义的方法。此时方法的实现都在类中完成。只要在系统的配置文件的模块依赖配置信息中添加或者删除功能实现模块的模块标识,就能实现模块的添加和删除。

基于上述方法实施例,本发明实施例提供了一种应用程序开发装置,如图4所示,该装置可以包括:

获取单元410,用于获取配置文件;

识别单元420,用于识别配置文件中的模块依赖配置信息,其中,模块依赖配置信息包括预先设定的应用程序所依赖的各特定功能实现模块的模块标识;

获取单元410,还用于根据模块依赖配置信息,从各特定功能实现模块中获取各功能代码;

打包单元430,用于将获取的各功能代码进行打包,生成应用程序的安装包。

可选的,获取单元410,具体可以用于调用抽取接口,根据模块依赖配置信息,从各特定功能实现模块中获取各功能代码。

可选的,获取单元410,具体可以用于根据模块依赖配置信息,采用反射方式,从各特定功能实现模块中获取各功能代码。

可选的,该装置还可以包括:确定单元、增加单元;

获取单元410,还可以用于获取功能新增请求,其中,功能新增请求中包括新增功能;

确定单元,用于根据新增功能,确定新增功能对应的新增功能实现模块,其中,新增功能实现模块中存储的功能代码可实现新增功能;

增加单元,用于将新增功能实现模块的模块标识增加至模块依赖配置信息中;

获取单元410,还可以用于根据更新后的模块依赖配置信息,从各特定功能实现模块和新增功能实现模块中获取各功能代码;

打包单元430,还可以用于将获取的各功能代码进行打包,生成更新的应用程序的安装包。

可选的,该装置还包括:确定单元、删除单元;

获取单元410,还可以用于获取功能删除请求,其中,功能删除请求中包括待删除功能;

确定单元,用于根据待删除功能,确定待删除功能对应的待删除功能实现模块,其中,待删除功能实现模块中存储的功能代码可实现所述待删除功能;

删除单元,用于将待删除功能实现模块的模块标识从模块依赖配置信息中删除;

获取单元410,还可以用于根据更新后的模块依赖配置信息,从除待删除功能实现模块以外的其他各特定功能实现模块中获取各功能代码;

打包单元430,还可以用于将获取的各功能代码进行打包,生成更新的应用程序的安装包。

应用本发明实施例,开发应用程序时,预先在配置文件中设置模块依赖配置信息,即预先设定应用程序所依赖的各特定功能实现模块的模块标识,这些特定功能实现模块中存储着用户希望应用程序能够实现的各功能的功能代码,从而根据配置文件中的模块依赖配置信息,能够从各特定功能实现模块中获取到各功能的功能代码,将这些功能代码进行打包,生成应用程序的安装包,完成应用程序开发。该应用程序开发过程将各功能代码模块化,只需要通过模块调用即可进行应用程序开发,无需开发人员手动编程,从而提高了应用程序的开发效率。

本发明实施例提供了一种电子设备,如图5所示,包括处理器501和存储器502,其中,存储器502,用于存放计算机程序;处理器501,用于执行存储器502上所存放的计算机程序时,实现上述应用程序开发方法。

上述存储器可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离上述处理器的存储装置。

上述处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理单元)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processing,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本实施例中,上述处理器通过读取存储器中存储的计算机程序,并通过运行计算机程序,能够实现:开发应用程序时,预先在配置文件中设置模块依赖配置信息,即预先设定应用程序所依赖的各特定功能实现模块的模块标识,这些特定功能实现模块中存储着用户希望应用程序能够实现的各功能的功能代码,从而根据配置文件中的模块依赖配置信息,能够从各特定功能实现模块中获取到各功能的功能代码,将这些功能代码进行打包,生成应用程序的安装包,完成应用程序开发。该应用程序开发过程将各功能代码模块化,只需要通过模块调用即可进行应用程序开发,无需开发人员手动编程,从而提高了应用程序的开发效率。

另外,本发明实施例提供了一种机器可读存储介质,机器可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述应用程序开发方法。

本实施例中,计算机可读存储介质存储有在运行时执行本发明实施例所提供的应用程序开发方法的计算机程序,因此能够实现:开发应用程序时,预先在配置文件中设置模块依赖配置信息,即预先设定应用程序所依赖的各特定功能实现模块的模块标识,这些特定功能实现模块中存储着用户希望应用程序能够实现的各功能的功能代码,从而根据配置文件中的模块依赖配置信息,能够从各特定功能实现模块中获取到各功能的功能代码,将这些功能代码进行打包,生成应用程序的安装包,完成应用程序开发。该应用程序开发过程将各功能代码模块化,只需要通过模块调用即可进行应用程序开发,无需开发人员手动编程,从而提高了应用程序的开发效率。

本发明实施例提供的又一实施例中,还了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述应用程序开发方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、DSL(Digital Subscriber Line,数字用户线))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如DVD(DigitalVersatile Disc,数字多功能光盘))、或者半导体介质(例如SSD(Solid State Disk,固态硬盘))等。

对于应用程序开发装置、电子设备、机器可读存储介质及计算机程序产品实施例而言,由于其所涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于应用程序开发装置、电子设备、机器可读存储介质及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

相关技术
  • 应用程序开发方法、装置、电子设备及机器可读存储介质
  • 一种应用程序开发方法、装置、电子设备和存储介质
技术分类

06120113008506