一种应用程序的生成方法及设备与流程

文档序号:17089426发布日期:2019-03-13 23:16阅读:138来源:国知局
一种应用程序的生成方法及设备与流程

本发明属于信息处理技术领域,尤其涉及一种应用程序的生成方法及设备。



背景技术:

随着终端技术的不断发展,为了满足用户使用过程中的各种需求,应用程序的更新速度也越来越快,因此如何提高应用程序的更新效率,则直接影响应用程序的用户体验。现有的应用程序更新技术,一般是需要用户重新下载应用程序,并且在更新过程中应用程序无法正常运行以及操作,从而导致更新时间需要用户长时间停用应用程序,降低了应用程序的使用效率以及用户的使用体验。



技术实现要素:

有鉴于此,本发明实施例提供了一种应用程序的生成方法及设备,以解决现有的应用程序的更新技术,在更新过程中应用程序无法正常运行以及操作,从而导致更新时间需要用户长时间停用应用程序,降低了应用程序的使用效率以及用户的使用体验的问题。

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

获取应用程序的初始文件,并对所述初始文件进行解析,确定所述应用程序包含的各个功能模块的模块信息;所述模块信息包括线程信息以及接口信息;

基于所述线程信息以及接口信息,提取各个所述功能模板中包含的核心公共线程以及核心公共接口,生成核心公共模块;

为各个所述核心公共接口以及各个所述核心公共线程配置对应的调用链接;

将各个所述功能模块在所述初始文件内关于所述核心公共接口和/或所述核心公共线程的源码数据替换为所述调用链接;

基于替换后的所述初始文件以及所述核心公共模板,生成所述应用程序的程序文件。

本发明实施例的第二方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面的各个步骤。

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

实施本发明实施例提供的一种应用程序的生成方法及设备具有以下有益效果:

本发明实施例通过将应用程序内核心公共模块从各个功能模块内进行抽离,即提取核心公共线程以及核心公共接口,并基于核心公共线程以及核心公共接口生成调用链接,各个功能模块在使用应用程序的核心功能时,只需调用核心公共模块即可,功能模块自身并不会影响核心公共模块的运作,从而在对应用程序的功能模块进行更新过程中,核心公共模块以及无需更新的功能模块依然能够响应用户发起的操作,减少了功能模块之间的耦合度,避免了因应用程序需要更新而无法操作应用程序的情况,提高了应用程序的可操作性以及用户体验。

附图说明

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

图1是本发明第一实施例提供的一种应用程序的生成方法的实现流程图;

图2是本发明第二实施例提供的一种应用程序的生成方法s103具体实现流程图;

图3是本发明第三实施例提供的一种应用程序的生成方法s102具体实现流程图;

图4是本发明第四实施例提供的一种应用程序的生成方法具体实现流程图;

图5是本发明第五实施例提供的一种应用程序的生成方法具体实现流程图;

图6是本发明一实施例提供的一种终端设备的结构框图;

图7是本发明另一实施例提供的一种终端设备的示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例通通过将应用程序内核心公共模块从各个功能模块内进行抽离,即提取核心公共线程以及核心公共接口,并基于核心公共线程以及核心公共接口生成调用链接,各个功能模块在使用应用程序的核心功能时,只需调用核心公共模块即可,功能模块自身并不会影响核心公共模块的运作,从而在对应用程序的功能模块进行更新过程中,核心公共模块以及无需更新的功能模块依然能够响应用户发起的操作,解决了应用程序的更新技术,在更新过程中应用程序无法正常运行以及操作,从而导致更新时间需要用户长时间停用应用程序,降低了应用程序的使用效率以及用户的使用体验的问题。

在本发明实施例中,流程的执行主体为终端设备。该终端设备包括但不限于:服务器、计算机、智能手机以及平板电脑等具有应用程序的生成功能的设备。图1示出了本发明第一实施例提供的应用程序的生成方法的实现流程图,详述如下:

在s101中,获取应用程序的初始文件,并对所述初始文件进行解析,确定所述应用程序包含的各个功能模块的模块信息;所述模块信息包括线程信息以及接口信息。

在本实施例中,终端设备可以对已经生成我的应用程序进行改造,以使改造后的应用程序中,各个功能模块的核心公共线程以及核心公共接口从模块内抽离,减少各个功能模块之间的耦合度,从而能够在线对应用程序进行更新操作。其中,终端设备会根据该应用程序的程序标识,获取该应用程序的初始文件,即该应用程序的原生程序文件。该应用程序的初始文件可以存储于一应用程序库内,终端设备可以根据该应用程序的程序标识,从应用程序库中下载该应用程序的初始文件。例如,该应用程序库可以为一应用程序商城,终端设备通过互联网与该应用程序商城进行通信,并通过输入该应用程序的程序名或程序编号,从该应用程序商城中下载该应用程序的初始文件;当然,该应用程序库还可以存储于一数据库服务器内,开发人员可以将已测试成功的应用程序的初始文件上传至数据库服务器内,终端设备可以对该数据库服务器内已上传程序文件执行s101至s105的相关操作,以实现对核心模块的抽离,并将抽离后的应用程序的程序文件进行发布。当然,终端设备除了通过应用程序库获取应用程序的初始文件外,用户可以直接将所需改造的应用程序的原始程序文件发送给终端设备,获知终端设备从本地已安装的应用程序中,选择未修改的一个应用程序作为目标应用程序,并对该目标应用程序执行s101的相关操作。

可选地,在s101之前,终端设备建立一个应用程序优化列表,为每个应用程序添加一个优化标识符,该优化标识符的初始值为第一位值。终端设备基于各个应用程序的使用频率,确定各个应用程序的优化优先级,基于该优化优先级对各个应用程序执行s101至s105的相关操作,并生成一个应用程序的程序文件后,将该优化标识符设置为第二位值。终端设备可以基于该应用程序优化列表识别所需进行改造的应用程序,依次对各个应用程序进行改造。特别地,若终端设备安装新的应用程序,则会将新安装的应用程序添加到该应用程序优化列表内,并确定该应用程序的优化优先级。

在本实施例中,终端设备在获取了应用程序的初始文件后,会对该初始文件进行解析,识别该应用程序中包含的功能模块,并根据各个功能模块对应的源码数据,识别该运行该功能模块时所需调用的线程以及各个线程中包含的接口,并确定每个线程生成的线程信息以及每个接口的接口信息。其中,该接口信息可以包括该接口传输的数据类型、额定运行参数以及接口类型等信息;所述线程信息可以包括线程功能、资源占用信息以及线程描述信息等。终端设备间各个线程的线程信息以及各个接口的接口信息进行封装,为每个功能模块输出对应的模块信息。

在s102中,基于所述线程信息以及接口信息,提取各个所述功能模板中包含的核心公共线程以及核心公共接口,生成核心公共模块。

在本实施例中,终端设备在确定各个模块的线程信息以及接口信息后,可以对各个接口以及线程进行识别,确定该功能模块内是否包含核心公共线程或和核心公共接口,若存在,则将从模块信息中提取对应的核心公共线程和/或核心公共接口,在对各个功能模块识别完毕后,将所有提取得到的核心公共线程以及核心公共模块进行汇聚,生成核心公共模块。需要说明的是,若从不同功能模块中提取得到的核心公共线程的线程信息是相互匹配的,即两个核心公共线程所完成的线程任务是相同的,在该情况下,汇聚为核心公共模块时,会将相同功能的核心公共线程汇聚为同一个,对应地,对于相同的核心公共接口,在汇聚为核心公共模块后,也会保留一个。优选地,识别两个核心公共线程或核心公共接口是否为相同的线程或接口的方式可以为:终端设备计算两个线程信息之间的匹配度,若该匹配度大于或等于预设的匹配阈值,则识别两个核心公共线程为相同的线程。同样地,对于核心公共接口的识别也可以参照上述的方式执行。

可选地,终端设备还可以提取从不同功能模块中确定的线程信息中提取线程关键词,若任意至少两个核心公共线程之间相同线程关键词的个数大于预设个数阈值,则识别两个核心公共线程为相同的核心公共线程,同样地,对于核心公共接口也可以提取接口关键词,并通过上述的方式,识别相同的核心公共接口。

可选地,识别核心公共接口以及核心公共线程的方式可以为:终端设备根据各个功能模块中包含的线程信息,识别出线程功能相同的线程信息,若该相同功能的线程信息对应的功能模块个数大于预设的模块个数阈值,则多个不同功能模块均需要使用相同功能的线程,则可以确定该线程信息为核心公共线程。例如,功能模块a、模块b以及模块c的模块信息中均包含录音线程,则表示上述三个模块均包含录音功能,则可以将录音线程提取出来作为核心公共线程。同样地,对于核心公共接口也可以通过上述方式进行识别。

可选地,终端设备可以存储有核心公共模块列表,该核心公共模块列表中记录有核心公共线程以及核心公共接口,终端设备可以基于该核心公共模块列表对各个功能模块进行逐一识别,从而提取出各个功能模块中包含的核心公共线程以及核心公共接口。需要说明的是,该核心公共模块列表内包含了应用程序程序整体运行相关的线程以及接口,例如应用程序启动、运行、暂停、关闭等流程所需调用的线程以及接口。

在本实施例中,终端设备在确定了各个核心公共线程以及核心公共接口后,会根据各个核心公共线程以及核心公共接口对应的源码数据,生成核心公共模块,从而在需要使用核心公共线程或核心公共接口时,可以直接调用该核心公共模块进行响应,减少了各个功能模块之间的耦合度。

在s103中,为各个所述核心公共接口以及各个所述核心公共线程配置对应的调用链接。

在本实施例中,由于各个功能模块需要抽离核心公共线程以及核心公共接口,即各个功能模块在启动相关的核心公共线程以及核心公共接口时,不再是通过自身的源码数据创建对应的线程或接口,而是需要通过调用核心公共模块中对应的核心公共线程和/或核心公共接口完成对应的操作,基于此,为了便于各个功能模块对核心公共模块进行调用,终端设备会为每个核心公共接口以及各个核心公共线程配置对应的调用链接。该调用链接会包含一个核心公共线程的线程标识或一个核心公共接口的接口标识,应用程序内的各个功能模块能够通过该调用链接,完成对核心公共模块的调用操作。

在本实施例中,该调用链接具体为一跳转链接,即应用程序在运行该功能模块时,在需要使用核心公共线程和/或核心公共接口时,会通过该调用链接激活核心公共模块,并基于该调用链接中包含的接口标识或线程标识,通过对应的核心公共接口或核心公共线程执行对应的操作。

在s104中,将各个所述功能模块在所述初始文件内关于所述核心公共接口和/或所述核心公共线程的源码数据替换为所述调用链接。

在本实施例中,终端设备在为每个核心公共接口以及核心公共线程配置对应的调用链接后,可以对原有的初始文件进行修改,以实现在源码数据层面对各个功能模块的核心部件进行抽离。具体实现方式如下,由于在s102中,终端设备已经识别了各个功能模块内包含的核心公共线程以及核心公共接口,终端设备获取对应核心公共线程的调用链接以及核心公共接口对应的调用连接,并将该调用连接替换原有初始文件中对应核心公共接口和/或核心公共线程的源码数据,从而在功能模块在调用该核心公共线程以及核心公共接口时,自动跳转到核心公共模块,通过核心公共模块来启动核心公共线程以及核心公共接口。

可选地,在本实施例中,终端设备在执行s102时,在识别到一个核心公共线程或核心公共接口时,可以标记出该线程以及接口对应的源码数据,并添加对应的接口标识或线程标识,终端设备在确定了各个核心公共线程以及核心公共接口的调用连接后,可以直接读取初始文件内的标记,并基于该标记关联的接口标识或线程标识,将对应的调用链接替换该标记区域的源码数据。

在s105中,基于替换后的所述初始文件以及所述核心公共模板,生成所述应用程序的程序文件。

在本实施例中,终端设备将替换后的初始文件以及核心公共模块对应的源码数据进行合并,由于初始文件中各个功能模块的源码数据并不包含核心公共模块的内容,因此需要将核心公共模块的源码数据以及初始文件进行合成,即可得到实现核心功能抽离的程序文件。

可选地,在本实施例中,终端设备可以在生成了应用程序的程序文件后,与该应用程序的发布平台进行通信,将该程序文件上载到该发布平台,以便后续用户终端下载该应用程序时,可以下载已抽离核心公共模块的程序文件,便于后续功能模块更新。

以上可以看出,本发明实施例提供的一种应用程序的生成方法通过将应用程序内核心公共模块从各个功能模块内进行抽离,即提取核心公共线程以及核心公共接口,并基于核心公共线程以及核心公共接口生成调用链接,各个功能模块在使用应用程序的核心功能时,只需调用核心公共模块即可,功能模块自身并不会影响核心公共模块的运作,从而在对应用程序的功能模块进行更新过程中,核心公共模块以及无需更新的功能模块依然能够响应用户发起的操作,减少了功能模块之间的耦合度,避免了因应用程序需要更新而无法操作应用程序的情况,提高了应用程序的可操作性以及用户体验。

图2示出了本发明第二实施例提供的一种应用程序的生成方法的s103具体实现流程图。参见图2,相对于图1述实施例,本实施例提供的一种应用程序的生成方法中s103包括:s1031~s1034,具体详述如下:

进一步地,所述核心公共接口包括网关接口,所述为各个所述核心公共接口以及各个所述核心公共线程配置对应的调用链接,包括:

在s1031中,获取各个所述功能模块的网络地址。

在本实施例中,终端设备为了配置各个功能模块的出口网关的网络地址,需要将各个功能模块对应的网络地址进行汇聚,从而确定该应用程序与其他设备通信时对应的网络地址。而不同功能模块由于所完成的功能以及通信的对象不同,并且实现各个功能模块的并发运行,开发人员会为每个功能模块配置对应的网络地址。若各个功能模块的网络地址是静态分配的,终端设备可以通过读取各个功能模块对应的源码数据,从而获取得到各个功能模块静态分配的网络地址。若各个功能模块的网络地址是动态分配的,终端设备可以控制该应用程序,通过各个功能模块向模拟通信对端发送一个通信探测帧,从而基于该通信探测帧获取得到本次动态分配的网络地址。

在本实施例中,由于部分功能模块可能用于本地运行,即无需与互联网或其他设备进行交互通信,即该功能模块无需配置网络地址,在该情况下,终端设备可以识别该功能模块的网络地址为缺省配置或该网络地址为空。

优选地,终端设备提取包含通信接口的功能模块,并获取各个包含接口的功能模块的网络地址。由于不包含通信接口的功能模块,则为无需与互联网或其他设备进行数据交互的功能模块,即该类功能模块并未预先配置有网络地址,在该情况下,终端设备只对包含通信接口的功能模块进行网络地址的获取操作,从而提高了网络地址的获取效率。

在s1032中,基于所述网络地址,确定所述应用程序的通信网段以及掩码位数。

在本实施例中,终端设备获取了各个功能模块的网络地址后,会对各个网络地址进行汇聚操作,确定各个网络地址所属的通信网段,在确定了通信网段后即可以确定对应的掩码位数。例如,模块a的网络地址为:192.168.1.10,而模块b的网络地址为192.168.1.12,模块c的网络地址为:192.168.1.20,模块d的网络地址为192.168.1.22,由此可见,模块a、模块b、模块c以及模块d的网络地址均属于192.168.1.0~192.168.1.32这一通信网段,因此对应的掩码位数为6位。需要说明的是,该掩码位数具体为子网络的掩码位数,即该通信网络所包含的子网络对应的掩码位数。

在本实施例中,终端设备在获取了各个网络地址后,将各个网络地址转换为二进制表示的网络地址,从而识别位值相同的个数,基于位值相同的个数确定该应用程序所属的通信网段,以及根据位值不同的个数确定掩码位数。

在s1033中,根据所述通信网段以及掩码位数,生成所述应用程序的网关地址。

在本实施例中,终端设备在确定了该应用程序的通信网段以及掩码位数后,可以基于上述两个参数得到该应用程序的网关地址。当终端设备接收到该应用程序的交互文件时,则会将该交互文件发送给该网关接口,并交由网关接口转发到对应的功能模块进行响应,同样地,各个功能模块需要向外界发送数据时,则会将目的地址设置为网关地址,并交由网关地址重新对该数据进行寻址,并转发至对应的通信对端,基于上述操作,即可以同一应用程序与外界通信的网络地址,避免因一功能模块异常,而无法确定对应的接收对象的情况,提高了通信的稳定性。

在s1034中,为所述网关接口配置会话标识,并基于所述会话标识以及所述网关地址生成网关调用链接。

在本实施例中,除了各个功能模块的通信地址需要进行统一外,终端设备还会保证与其他设备或互联网通信时所使用的通信链路是同一条链路,即各个功能模块的通信路径是一致的,从而确保应用程序在会话层的业务逻辑的一致性。基于此,终端设备会为该网关接口配置一个会话标识,各个功能模块需要与外网通信时,所创建的会话均通过网关接口创建,且会话标识一致,从而实现各个功能模块共享同一个会话标识(session)。不同功能模块可以通过时分复用或频分复用等方式共享该网关接口所建立的通信链路。

可选地,为各个功能模块配置对应的网关接口的方式可以为:终端设备在应用程序程的初始文件的会话层的session模块执行重载和复写,将各个功能模块原有的session替换本次创建的会话标识;并将网关接口的session的数据信息保留在公共区域redis数据库内;并将该网关接口的session的id回写给应用程序的初始文件内,保证各个功能模块回写同一个会话编号,即id。

在本实施例中,终端设备在确定了网关接口的网络地址以及会话标识后,则可以成关于网关接口的网关调用链接,并通过该调用链接替换各个功能模块中包含通信接口的源码数据。

在本发明实施例中,通过同一网络地址以及会话标识,从而能够实现各个功能模块与外网通信时,会话层业务逻辑的一致性,即通过同一端口与外网通信,即便某一功能模块异常,也能够正常对数据进行收发,提高了数据交互的稳定性。

图3示出了本发明第二实施例提供的一种应用程序的生成方法的具体实现流程图。参见图3,相对于图1述实施例,本实施例提供的一种应用程序的生成方法s102包括:s1021~s1023,具体详述如下:

在s1021中,对所述线程信息以及所述接口信息进行语义分析,提取所述线程信息内的线程关键词以及所述接口信息内的接口关键词。

在本实施例中,该线程信息可以为线程描述信息,该接口信息可以为接口描述信息,由于上述两类描述信息均为开发人员通过自然语言对接口以及线程的功能以及参数进行描述,因此上述两类描述信息并不一定具有固定的格式,且不同开发人员的描述顺序也存在差异,若直接对接口信息以及线程信息进行功能识别,可能会提高识别难度以及降低识别的准确度。基于此,终端设备会通过语义分析算法,确定该线程信息以及接口信息中包含的词组,并根据各个词组特性,从识别得到的词组中提取出线程关键词以及接口关键词,并通过线程关键词以及接口关键词,识别出核心公共线程以及核心公共接口。

在本实施例中,终端设备存储有一关键词库,终端设备在对线程信息以及接口信息进行语义分析后,输出多个候选关键词,并判断各个候选关键词是否记录在该关键词库内,若存在,则识别该关键词为接口关键词或线程关键词,从而生成各个线程信息以及接口信息对应的线程关键词组以及接口关键词组。

在s1022中,若预设的核心关键词库内包含所述线程关键词,则判定该功能关键词对应的线程信息为核心公共线程。

在本实施例中,终端设备存储有一核心关键词库,该核心关键词库内记载了核心功能相关的关键词,例如“启动”、“通信”、“用户注册”、“数据库”“鉴权”等应用程序在运行过程中必然需要执行的相关流程对应的关键词。当终端设备确定某一线程信息对应的线程关键词记录于核心关键词库中,则可以确定该线程信息对应的线程为核心公共线程。

在s1023中,若预设的核心关键词库内包含所述接口关键词,则判定该接口关键词对应的接口信息为核心公共接口。

与s1022类似,在本实施例中,该核心关键词库内不仅记录有核心线程相关的关键词,还记录有描述核心接口相关的关键词,当终端设备确定某一接口信息对应的接口关键词记录于核心关键词库中,则可以确定该接口信息对应的接口为核心公共接口。

需要说明的是,在s1022以及s1023可以同时执行,也可以基于预设的顺序先后执行,在此不作限定。

在本发明实施例中,由于通过语义分析,将接口信息以及线程信息中的无效字符进行过滤,提取与接口以及线程相关的关键词,从而能够提高核心公共线程以及核心公共接口识别的准确性以及降低识别难度。

图4示出了本发明第三实施例提供的一种应用程序的生成方法的具体实现流程图。参见图4所示,相对于图1-图3所述实施例,本实施例提供的一种应用程序的生成方法中,在基于替换后的所述初始文件以及所述核心公共模板,生成所述应用程序的程序文件之后,还包括:s401~s405,具体详述如下:

在s401中,接收模块添加指令;所述模块添加指令中携带有新增模块数据。

在本实施例中,当应用程序需要添加新的模块或需要对应用程序进行更新时,可以向终端设备发送一个模块添加指令,并将所需添加的功能模块的信息模块数据封装在该模块添加指令内。终端设备在接收到该模块添加指令后,则识别该指令中包含的应用标识,确定该应用程序是否已经对初始文件进行修改,生成可在线更新的程序文件。若是,则执行s402的相关操作;反之,若该应用程序的初始文件并未进行修改,即该应用程序未支持程序在线更新,则执行s101至s105的相关操作后,再执行s402的相关操作。

在s402中,基于所述新增模块数据确定新增模块包含的新增接口以及新增线程。

在本实施例中,终端设备从模块添加指令中提取新增模块数据,并对该新增模块数据进行解析,确定所需添加的新增模块包含的新增接口以及新增线程,其中解析新增接口以及新增线程的方式可以参见s101的相关论述,在此不再赘述。

在s403中,若所述新增接口为所述核心公共接口,则基于该核心公共接口的调用链接修改所述新增模块数据。

本实施例中,终端设备在获取了新增接口后,会判定新增接口中是否包含核心公共接口,若该新增模块中某一接口为核心公共接口,则获取该核心公共接口的调用链接,并将该调用链接替换该新增接口在新增模块数据中对应的源码数据。当然,若该新增模块中各个新增接口均不为核心公共接口,则可以执行s404的相关操作。

在s404中,若所述新增线程为所述核心公共线程,则基于该核心公共线程的调用链接修改所述新增模块数据。

在本实施例中,终端设备在获取了新增线程后,会判定新增线程中是否包含核心公共线程,若该新增模块中某一新增线程为核心公共线程,则获取该核心公共线程的调用链接,并将该调用链接替换该新增线程在新增模块数据中对应的源码数据。

需要说明的是,终端设备识别新增接口以及新增线程是否属于核心公共模块的方式可以参照s102以及s1021~s1023的相关操作,在此不再赘述。

在s405中,将修改后的所述新增模块数据添加到所述程序文件。

在本实施例中,终端设备在对新增模块数据进行核心公共模块抽离后,会将修改后的新增模块数据添加到程序文件中,并将该新增模块添加到功能列表内,进行合法性注册,至此,应用程序可以调用新增模块的相关内容。

在本发明实施例中,由于核心公共模块已经从程序文件中进行抽离,因此新增模块的添加并不会影响应用程序的运作,并且应用程序在添加新增模块之前还可以对新增模块进行同样的核心模块抽离,从而保证整个应用程序能够实现在线更新。

图5示出了本发明第四实施例提供的一种应用程序的生成方法的具体实现流程图。参见图5所示,相对于图1-图3所述实施例,本实施例提供的一种应用程序的生成方法在基于替换后的所述初始文件以及所述核心公共模板,生成所述应用程序的程序文件之后,还包括:s501~s502,具体详述如下:

在s501中,运行所述应用程序,并接收所述应用程序内各个所述功能模块反馈的心跳信号帧。

在本实施例中,终端设备还可以识别出异常或所需删除的功能模块,对该功能模块进行在线删除。终端设备会运行该应用程序,在应用程序运行后,各个功能模块会以预设的时间间隔向应用程序发送一个心跳信号帧,该心跳信号帧用于确保各个功能模块处于正常运行状态,在应用程序正常运行的过程中,即应用程序并未出现运行异常或异常关闭等情况下,应用程序内的所有功能模块均可被正常调用,因此,各个功能模块在应用层序运行于前台的状态下,均会反馈心跳信号帧。

在s502中,若在预设时间阈值内未接收到所述功能模块反馈的心跳信号帧,则识别该功能模块为异常模块,并删除所述功能模块的源码数据。

在本实施例中,若应用程序在预设的时间阈值内并未接收到某一功能模块反馈的心跳信号帧,则表示该功能模块处于异常状态,需要对该异常模块执行异常处理。该时间阈值可以为功能模块发送心跳信号帧的周期时长,也可以为大于该周期时长的任意时间值,例如3倍周期时长。

在本实施例中,终端设备会将在预设时间阈值内为反馈心跳信号帧的功能模块识别为异常模块,并将该功能模块对应的源码数据从应用程序的程序文件中给删除,保证应用程序运行的稳定性。

在本发明实施例中,由于各个功能模块的源码数据已经抽离了核心公共线程以及核心公共接口,因此可以在运行的过程中对异常的功能模块进行删除,从而提高了对异常模块进行异常响应的速率。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

图6示出了本发明一实施例提供的一种终端设备的结构框图,该终端设备包括的各单元用于执行图1对应的实施例中的各步骤。具体请参阅图1与图1所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。

参见图6,所述终端设备包括:

初始文件获取单元61,用于获取应用程序的初始文件,并对所述初始文件进行解析,确定所述应用程序包含的各个功能模块的模块信息;所述模块信息包括线程信息以及接口信息;

核心公共模块生成单元62,用于基于所述线程信息以及接口信息,提取各个所述功能模板中包含的核心公共线程以及核心公共接口,生成核心公共模块;

调用链接配置单元63,用于为各个所述核心公共接口以及各个所述核心公共线程配置对应的调用链接;

调用链接替换单元64,用于将各个所述功能模块在所述初始文件内关于所述核心公共接口和/或所述核心公共线程的源码数据替换为所述调用链接;

程序文件生成单元65,用于基于替换后的所述初始文件以及所述核心公共模板,生成所述应用程序的程序文件。

可选地,所述核心公共接口包括网关接口,所述调用链接配置单元63包括:

网络地址获取单元,用于获取各个所述功能模块的网络地址;

通信网络确定单元,用于基于所述网络地址,确定所述应用程序的通信网段以及掩码位数;

网关地址生成单元,用于根据所述通信网段以及掩码位数,生成所述应用程序的网关地址;

网关调用链接生成单元,用于为所述网关接口配置会话标识,并基于所述会话标识以及所述网关地址生成网关调用链接。

可选地,所述核心公共模块生成单元62包括:

语义分析单元,用于对所述线程信息以及所述接口信息进行语义分析,提取所述线程信息内的线程关键词以及所述接口信息内的接口关键词;

核心公共线程识别单元,用于若预设的核心关键词库内包含所述线程关键词,则判定该功能关键词对应的线程信息为核心公共线程;

核心公共接口识别单元,用于若预设的核心关键词库内包含所述接口关键词,则判定该接口关键词对应的接口信息为核心公共接口。

可选地,所述终端设别还包括:

模块添加指令接收单元,用于接收模块添加指令;所述模块添加指令中携带有新增模块数据;

新增模块信息确定单元,用于基于所述新增模块数据确定新增模块包含的新增接口以及新增线程;

新增接口识别单元,用于若所述新增接口为所述核心公共接口,则基于该核心公共接口的调用链接修改所述新增模块数据;和/或

新增线程识别单元,用于若所述新增线程为所述核心公共线程,则基于该核心公共线程的调用链接修改所述新增模块数据;

新增模块添加单元,用于将修改后的所述新增模块数据添加到所述程序文件。

可选地,所述终端设备还包括:

心跳信号帧发送单元,用于运行所述应用程序,并接收所述应用程序内各个所述功能模块反馈的心跳信号帧;

异常模块识别单元,用于若在预设时间阈值内未接收到所述功能模块反馈的心跳信号帧,则识别该功能模块为异常模块,并删除所述功能模块的源码数据。

因此,本发明实施例提供的终端设备同样可以通过将应用程序内核心公共模块从各个功能模块内进行抽离,即提取核心公共线程以及核心公共接口,并基于核心公共线程以及核心公共接口生成调用链接,各个功能模块在使用应用程序的核心功能时,只需调用核心公共模块即可,功能模块自身并不会影响核心公共模块的运作,从而在对应用程序的功能模块进行更新过程中,核心公共模块以及无需更新的功能模块依然能够响应用户发起的操作,减少了功能模块之间的耦合度,避免了因应用程序需要更新而无法操作应用程序的情况,提高了应用程序的可操作性以及用户体验。

图7是本发明另一实施例提供的一种终端设备的示意图。如图7所示,该实施例的终端设备7包括:处理器70、存储器71以及存储在所述存储器71中并可在所述处理器70上运行的计算机程序72,例如应用程序的生成程序。所述处理器70执行所述计算机程序72时实现上述各个应用程序的生成方法实施例中的步骤,例如图1所示的s101至s105。或者,所述处理器70执行所述计算机程序72时实现上述各装置实施例中各单元的功能,例如图6所示模块61至65功能。

示例性的,所述计算机程序72可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器71中,并由所述处理器70执行,以完成本发明。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序72在所述终端设备7中的执行过程。例如,所述计算机程序72可以被分割成初始文件获取单元、核心公共模块生成单元、调用链接配置单元、调用链接替换单元以及程序文件生成单元,各单元具体功能如上所述。

所述终端设备7可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器70、存储器71。本领域技术人员可以理解,图7仅仅是终端设备7的示例,并不构成对终端设备7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器70可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器71可以是所述终端设备7的内部存储单元,例如终端设备7的硬盘或内存。所述存储器71也可以是所述终端设备7的外部存储设备,例如所述终端设备7上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器71还可以既包括所述终端设备7的内部存储单元也包括外部存储设备。所述存储器71用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器71还可以用于暂时地存储已经输出或者将要输出的数据。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1