发明内容
本公开提供一种应用创建方法、装置、电子设备及存储介质,以至少解决现有技术中存在的以上技术问题。
本公开一方面提供一种应用创建方法,该方法应用于快应用平台,包括:
创建项目工程;
在所述项目工程中,生成全局配置文件,所述全局配置文件包括至少两个目标应用的配置信息;
加载快应用源生代码的初始框架,所述初始框架包括多个服务类,获取所述目标应用对应的每个所述服务类的代码,得到所述目标应用的执行代码;
建立所述目标应用对应的待打包文件,所述待打包文件包括:所述目标应用对应的配置信息、所述配置信息中记录的与所述目标应用关联的资源文件和所有目标应用的执行代码;
对所述待打包文件进行打包得到所述目标应用的打包文件,发布所述打包文件,完成所述目标应用的创建。
在一可实施方式中,在所述得到所述目标应用的执行代码时,该方法还包括:
将所述目标应用的执行代码与该目标应用对应的配置信息相关联。
在一可实施方式中,所述全局配置文件包括每个目标应用的配置信息的索引;
相应的,根据获取的索引,确定待创建的所述目标应用,加载快应用源生代码的初始框架,获取所述目标应用对应的每个所述服务类的代码。
在一可实施方式中,完成所述目标应用的创建之后,该方法还包括:
根据获取的索引,确定被访问的目标应用;
若所述被访问目标应用对应的执行代码被修改,则将所述目标应用修改后的执行代码与该目标应用对应的配置信息相关联。
在一可实施方式中,所述服务类包括:应用配置服务类、数据服务类、资源服务类和页面服务类,所述应用配置服务类针对于本地信息存储部分,所述数据服务类针对于目标应用环境的业务,所述资源服务类针对于目标应用环境的资源,所述页面服务类针对于目标应用环境的页面。
本公开另一方面提供一种装置,包括:
创建模块,用于创建项目工程;
配置模块,用于在所述项目工程中,生成全局配置文件,所述全局配置文件包括至少两个目标应用的配置信息;
处理模块,用于加载快应用源生代码的初始框架,所述初始框架包括多个服务类,获取所述目标应用对应的每个所述服务类的代码,得到所述目标应用的执行代码;
打包模块,用于建立所述目标应用对应的待打包文件,所述待打包文件包括:所述目标应用对应的配置信息、所述配置信息中记录的与所述目标应用关联的资源文件和所有目标应用的执行代码;
所述打包模块,还用于对所述待打包文件进行打包得到所述目标应用的打包文件,发布所述打包文件,完成所述目标应用的创建。
在一可实施方式中,所述处理模块,还用于将所述目标应用的执行代码与该目标应用对应的配置信息相关联。
在一可实施方式中,所述处理模块,还用于根据全局配置文件中每个目标应用的配置信息的索引,确定待创建的所述目标应用,加载快应用源生代码的初始框架,获取所述目标应用对应的每个所述服务类的代码。
本公开再一方面提供一种电子设备,包括:存储器和处理器,所述存储器存储由所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述应用创建方法。
本公开还一方面提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被读取并执行时,实现上述应用创建方法。
基于上述方案,本公开提供了一种应用创建方法,只需在快应用平台上创建一个项目工程,在该项目工程内生成全局配置文件,根据确定的至少两个目标应用配置对应的配置信息,并通过加载初始框架,为目标应用执行代码的生成提供基础调用,由于不同目标应用的配置信息和执行代码均配置在一个项目工程内,在目标应用打包完成创建后,后续维护时也只需在一个项目工程即可,降低了维护难度和创建时步骤的繁琐。
具体实施方式
为使本公开的目的、特征、优点能够更加的明显和易懂,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而非全部实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
为了提高创建应用和维护应用的便捷性,本公开一实施例提供了一种应用创建方法,该方法应用于快应用平台,包括:
步骤101,创建项目工程。
快应用是一种新的应用形态,以往的手机端应用主要有两种方式:网页、原生应用;网页无需安装,却体验不是很好;原生应用体验流畅,却需要从应用商店下载安装,难以一步直达用户;快应用的出现,能够让用户无需下载安装,并且还能流畅的体验应用内容。
想要在快应用平台上进行应用的开发,需要先创建一个项目工程以便在该项目工程下配置目标应用的信息,该项目工程包含了项目配置和示例页面的初始代码。
步骤102,在所述项目工程中,生成全局配置文件,所述全局配置文件包括至少两个目标应用的配置信息。
全局配置文件用于对想要开发的目标应用进行资源文件的路径、窗口表现、网络超时时间等的设置,例如,在一示例中,全局配置文件为autoQuickApp.json文件。
目标应用即为想要创建的应用,有多少个目标应用,则配置多少个配置信息,在一个项目工程中,至少创建两个目标应用。
配置信息包括资源文件的路径(如通过resources配置)、目标应用的应用名称、资源文件的文件名路径(如通过resourcesBean配置)等。
步骤103,加载快应用源生代码的初始框架,所述初始框架包括多个服务类,获取所述目标应用对应的每个所述服务类的代码,得到所述目标应用的执行代码。
加载快应用源生代码的初始框架,初始框架能够提供丰富的原生接口,具备基础通用服务的多个服务类,既有通用的系统功能,也有第三方服务的对接,如网络请求、本地存储和支付等等。
类是将同类对象的共同属性和行为抽象出来形成的一个相对复杂的数据类型,不同的服务类对应于不同的属性和行为,即实现不懂的功能,初始框架上的服务类可以被继承和拓展以供使用。
在上述步骤102中生成配置信息时,也会配置需要使用的类的信息,并在生成配置时将类名与文件名保持一致。
例如,资源文件中包括一张名为flower的图片,该图片的存储路径为D盘的picture文件夹,则资源文件的文件名路径配置为“resourcesBean”:“D/picture/flowerBean.js”。此处仅为举例以作示意,实际配置情况应不限定于此。
初始框架加载后需要进行初始化处理以检测运行环境,初始化处理后,根据对应的目标应用需要的功能,获取对应的服务类的代码,根据对应的服务类的代码,生成目标应用的执行代码。
步骤104,建立所述目标应用对应的待打包文件,所述待打包文件包括:所述目标应用对应的配置信息、所述配置信息中记录的与所述目标应用关联的资源文件和所有目标应用的执行代码。
当需要对目标应用进行打包时,需要先确定目标应用用于打包的全部信息,通过读取全局配置文件,能够确定目标应用打包所需要的全部信息,从而获取目标应用对应的待打包文件。以目标应用关联所资源文件为例,其中,资源文件包括图片资源和manifest.json文件(定义应用描述、功能权限声明、系统配置和页面路由等信息)等,确定上述文件未缺失,获取上述文件。以上仅为举例以作示意,并不限定于此,确定待打包文件未缺失,即每个目标应用都能确定与其对应的待打包文件,则初始化打包的环境,以便后续执行打包命令。
由于在生成全局配置文件时,配置信息是根据目标应用的配置顺序进行生成的,即第一个目标应用的配置信息排在第一,第二个目标应用的配置信息排在第二,第三个目标应用的配置信息排在第三,以此类推,因此,根据目标应用的打包顺序,可找到对应顺序的配置信息。
建立待打包文件时,按照目标应用的打包顺序,从全局配置文件中获取配置信息,通过读取配置信息,可知悉相关联的资源文件,获取相关联的资源文件,和配置信息以及所有目标应用的执行代码一起形成该目标应用的待打包文件。
应该理解的是,无需在打包时将当前打包的目标应用的执行代码单独剥离,只要该目标应用的配置信息和资源文件为对应的即可。
例如,现有三个目标应用a1、a2和a3,当打包目标应用a1时,先从配置文件中获取第一段配置信息(即a1所对应的配置信息),读取该配置信息,获悉需要的资源文件为位于D盘picture文件夹内的图片1(该文件夹内还有图片2和图片3),获取图片1并更新需要打包的配置信息中对该图片1的信息,将目标应用a1、a2和a3的执行代码一起打包,得到目标应用a1的打包文件,将该打包文件发布,则目标应用a1创建完成。
当打包目标应用a2时,先从配置文件中获取第二段配置信息(即a2所对应的配置信息),读取该配置信息,获悉需要的资源文件为位于D盘picture文件夹内的图片2,获取图片2并更新需要打包的配置信息中对该图片2的信息,将目标应用a1、a2和a3的执行代码一起打包,得到目标应用a2的打包文件,将该打包文件发布,则目标应用a2创建完成。目标应用a3的打包以此类推。
步骤105,对所述待打包文件进行打包得到所述目标应用的打包文件,发布所述打包文件,完成所述目标应用的创建。
由于在该项目工程下,至少存在两个目标应用,因此,按照步骤104中,依次对每个目标应用的建立的待打包文件进行打包,将每个目标应用打包并发布,即可将目标应用创建并使用。
应该理解的是,打包时可使用快应用的打包工具。
基于上述方案,本公开提供了一种应用创建方法,只需在快应用平台上创建一个项目工程,在该项目工程内生成全局配置文件,根据确定的至少两个目标应用配置对应的配置信息,并通过加载初始框架,为目标应用执行代码的生成提供基础调用,由于不同目标应用的配置信息和执行代码均配置在一个项目工程内,在目标应用打包完成创建后,后续维护时也只需在一个项目工程即可,降低了维护难度和创建时步骤的繁琐。
在一示例中,在所述得到所述目标应用的执行代码时,该方法还包括:
将所述目标应用的执行代码与该目标应用对应的配置信息相关联。
由于目标应用的配置信息和执行代码不在相同位置,而项目工程内有至少两个目标应用所对应的配置信息和执行代码,因此,为了能够实现每个目标应用的独立运作,需要将目标应用的执行代码和对应的配置信息进行关联。
应该理解的是,代码生成工具用于自动生成代码,可根据需求调整,其中,代码生成工具可预先存储在本地,在使用时通过命令读取执行。
在一示例中,所述全局配置文件包括每个目标应用的配置信息的索引;
相应的,根据获取的索引,确定待创建的所述目标应用,加载快应用源生代码的初始框架,获取所述目标应用对应的每个所述服务类的代码。
对每个目标应用的配置信息建立索引,能够定位到需要的配置信息并加载快应用源生代码的初始框架,以便对根据索引而确定的目标应用,进行服务类代码的获取和执行代码的生成。
例如,假设有六段配置信息,且这六段配置信息以如下的形式生成,appMessage=[a0,a1,a2,…,a6],其中,a0对应默认的调试信息,a1对应第一个目标应用的配置信息,a2对应第二个目标应用的配置信息,以此类推,a6对应第六个目标应用的配置信息。因此,当索引为1时,可访问第一个目标应用的配置信息a1并加载快应用源生代码的初始框架,获取第一个目标应用对应的服务类的代码,以便生成执行代码。当索引为2时,可访问第二个目标应用的配置信息a2并加载快应用源生代码的初始框架,获取第二个目标应用对应的服务类的代码,依次类推。应该理解的是,此处仅举例以作示意,并不表征配置信息之间的结构形式,具体形式在此不做限定,只要能够实现上述功能即可。
在一示例中,完成所述目标应用的创建之后,该方法还包括:
根据获取的索引,确定被访问的目标应用;
若所述被访问目标应用对应的执行代码被修改,则将所述目标应用修改后的执行代码与该目标应用对应的配置信息相关联。
当目标应用都创建完成后,可根据需求切换查看或者调试目标应用。根据上述步骤可知,通过不同的索引,可以定位不同的目标应用,即在一个项目工程内,通过切换索引,能够快速实现多个目标应用之间的切换。
根据需求对目标应用对应的执行代码进行修改后,则需要对目标应用修改后的执行代码与对应的配置信息进行重新关联,以实现更新。
在一示例中,上述步骤都作用于数据层,项目工程界面上还包括视图层,数据层和视图层通过快应用源生代码的初始框架提供的接口实现交互,通过获取的索引,可以确定被访问的目标应用的同时,实现视图层对该目标应用实现效果的预览。
例如,若视图层当前展现的为第一个目标应用的预览效果,但想要调试第六个目标应用,则通过第六个目标应用对应的索引,使得视图层展现第六个目标应用的预览效果,若第六个目标应用的执行代码发生改变,则需重新关联第六个目标应用的执行代码和对应的配置信息。
在一示例中,所述服务类包括:应用配置服务类、数据服务类、资源服务类和页面服务类,所述应用配置服务类针对于本地信息存储部分,所述数据服务类针对于目标应用环境的业务,所述资源服务类针对于目标应用环境的资源,所述页面服务类针对于目标应用环境的页面。
其中,应用配置服务类(appConfigService),针对于本地信息存储部分,对于一些在程序中需要使用的链接,地址等常量,可以使用该类来设置。
数据服务类(dataService),针对于目标应用环境的业务,对服务器系统的所有组件进行基本整合。通过定义派生自该类以及引用兼容数据模型,创建将系统默认值用于授权和缓存的新数据服务。
资源服务类(resourcesService),针对于目标应用环境的资源,可以作为实际开发中读取类路径下资源的工具类。
页面服务类(viewService),针对于目标应用环境,用于将可视化对象映射到基础模型项。
如步骤103中所述,可根据对应的目标应用需要的功能,获取对应的服务类的代码,因此,类可以被继承,相应的,类也可以被拓展。
例如,现有一服务类所定义的方法为通过点击事件,可跳转至购物平台,当第一个目标应用继承该类并根据需求进行拓展时,点击事件产生的场景为跳转至某宝平台,而第二个目标应用继承该类并根据需求进行拓展时,点击事件产生的场景为跳转至某东平台。
再例如,现有一服务类所定义的方法为输入数据进行计算,根据法则运算逻辑进行运算,并将计算结果自动保留小数位,当第一个目标应用继承该类并根据需求进行拓展时,输入数据进行计算,则计算结果自动保留3位小数位,当第二个目标应用继承该类并根据需求进行拓展时,输入数据进行计算,则计算结果自动保留4位小数位。
相较于一个项目工程对应一个目标应用,若要实现上述功能,则两个目标应用需要完整的两套逻辑算法,而位于一个项目工程的初始框架下,两个目标应用只需继承相应的类,以获取对应的服务类代码的形式,生成相应的执行代码即可。
在一示例中,每个目标应用均需继承上述四个服务类,其中,在配置资源文件的名称时,需各个目标应用统一配置名称,例如,第一个目标应用和第二个目标应用,都需要通过按钮的方式加载资源图片,则该事件对应的按钮在第一个目标应用和第二个目标应用中,名称都为button1,而button1所对应不同的目标应用时的资源图片名称不同,以便通过调用资源服务类(resourcesService)的方法实现目标应用资源的动态加载。
例如,若存在两张资源图片,分别为sxt1和sxt2,需要调用资源图片的事件为进行如下操作,click button1=new click(),则对于第一个目标应用,调用名为sxt1的资源图片的操作为,button1.image=Properties.Resources.sxt1,对于第二个目标应用,调用名为sxt2的资源图片的操作为,button1.image=Properties.Resources.sxt2。以上举例仅作为示例,实际不限定于此。
在一示例中,由于数据服务类(dataService)用于处理各目标应用之间的业务,因此,每个目标应用均需继承该服务类,并根据各自对应的功能进一步拓展该服务类,以便能够进一步降低各目标应用之间执行代码之间的耦合性。
本公开一实施例还提供了一装置,如图2所示,该装置包括:
创建模块10,用于创建项目工程。
配置模块20,用于在所述项目工程中,生成全局配置文件,所述全局配置文件包括至少两个目标应用的配置信息。
处理模块30,用于加载快应用源生代码的初始框架,所述初始框架包括多个服务类,获取所述目标应用对应的每个所述服务类的代码,得到所述目标应用的执行代码。
打包模块40,用于建立所述目标应用对应的待打包文件,所述待打包文件包括:所述目标应用对应的配置信息、所述配置信息中记录的与所述目标应用关联的资源文件和所有目标应用的执行代码。
所述打包模块40,还用于对所述待打包文件进行打包得到所述目标应用的打包文件,发布所述打包文件,完成所述目标应用的创建。
所述处理模块30,还用于将所述目标应用的执行代码与该目标应用对应的配置信息相关联。
所述处理模块30,还用于根据全局配置文件中每个目标应用的配置信息的索引,确定待创建的所述目标应用,加载快应用源生代码的初始框架,获取所述目标应用对应的每个所述服务类的代码。
所述处理模块30,还用于在打包模块完成所述目标应用的创建之后,根据获取的索引,确定被访问的目标应用;
若所述被访问目标应用对应的执行代码被修改,则将所述目标应用修改后的执行代码与该目标应用对应的配置信息相关联。
本公开还提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行本公开所述的应用创建方法。
本公开还一方面提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现本公开所述的应用创建方法。
除了上述方法和装置以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。