CN109739544A - 用于生成应用安装包的方法、装置及电子设备 - Google Patents
用于生成应用安装包的方法、装置及电子设备 Download PDFInfo
- Publication number
- CN109739544A CN109739544A CN201811594715.9A CN201811594715A CN109739544A CN 109739544 A CN109739544 A CN 109739544A CN 201811594715 A CN201811594715 A CN 201811594715A CN 109739544 A CN109739544 A CN 109739544A
- Authority
- CN
- China
- Prior art keywords
- module
- program
- data
- catalogue file
- program 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
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本申请提供一种用于生成应用安装包的方法、装置及电子设备,所述方法的一具体实施方式包括:下载所述目标应用对应的源数据至第一路径,所述源数据为所述目标应用对应的一个或多个程序模块的源数据;基于所述源数据确定目录文件,所述目录文件记录有所述程序模块及每个所述程序模块的程序数据,以在模块修改过程中,修改任意所述程序模块的程序数据;所述目录文件存储在预先创建的第二路径;基于所述目录文件,生成所述目标应用的安装包。该实施方式打破了程序模块的数据与平台的数据仓库之间的强关联关系,使得程序开发者能够对下载的程序模块的数据进行任意修改,提高了平台数据仓库中程序模块的复用性。
Description
技术领域
本申请涉及计算机软件技术领域,特别涉及一种用于生成应用安装包的方法、装置及电子设备。
背景技术
目前来说,为了便于应用程序的开发以及程序模块的共享,出现了一些提供开源模块的平台。以NPM(node package manager,node.js包管理器)平台为例,该平台为程序开发者提供了一些开源的程序模块,程序开发者可以从平台的数据仓库中直接下载所需的程序模块的数据,以进行应用程序的开发。但是,为了便于更新和管理,目前,下载的程序模块的数据与平台的数据仓库具有强关联的关系,使得程序开发者无法对下载的程序模块的数据进行修改,从而降低了平台的数据仓库中程序模块的复用性。
发明内容
为了解决上述技术问题之一,本申请提供一种用于生成应用安装包的方法、装置及电子设备。
根据本申请实施例的第一方面,提供一种用于生成应用安装包的方法,包括:
下载所述目标应用对应的源数据至第一路径,所述源数据为所述目标应用对应的一个或多个程序模块的源数据;
基于所述源数据确定目录文件,所述目录文件记录有所述程序模块及每个所述程序模块的程序数据,以在模块修改过程中,修改任意所述程序模块的程序数据;所述目录文件存储在预先创建的第二路径;
基于所述目录文件,生成所述目标应用的安装包。
可选的,所述基于所述目录文件,生成所述目标应用的安装包,包括:
若确定所述目录文件中任意一个程序模块的程序数据在所述模块修改过程中被修改,则在所述目录文件中标记该程序模块,以得到目标文件;
基于所述目标文件,生成所述目标应用的安装包。
可选的,通过如下方式确定该程序模块的程序数据在所述模块修改过程中被修改:
获取预先确定的该程序模块对应的原始签名数据;
采用预设的加密算法计算该程序模块对应的当前签名数据;
若所述当前签名数据与所述原始签名数据不同,则确定该程序模块的程序数据在所述模块修改过程中被修改。
可选的,所述基于所述源数据确定目录文件,包括:
将基于所述源数据创建的模块目录存储至所述第二路径,作为所述目录文件;或者
利用基于所述源数据创建的模块目录,更新预先存储于所述第二路径的初始文件,得到所述目录文件;所述初始文件记录有所述程序模块及每个所述程序模块的初始数据。
可选的,所述基于所述源数据确定目录文件,包括:利用基于所述源数据创建的模块目录,更新预先存储于所述第二路径的初始文件,得到所述目录文件;
其中,所述利用基于所述源数据创建的模块目录,更新预先存储于所述第二路径的初始文件,包括:
确定所述初始文件中未被标记的程序模块;
采用所述模块目录对所述未被标记的程序模块的初始数据进行更新。
根据本申请实施例的第二方面,提供一种用于生成应用安装包的装置,包括:
下载模块,用于下载所述目标应用对应的源数据至第一路径,所述源数据为所述目标应用对应的一个或多个程序模块的源数据;
确定模块,用于基于所述源数据确定目录文件,所述目录文件记录有所述程序模块及每个所述程序模块的程序数据,以在模块修改过程中,修改任意所述程序模块的程序数据;所述目录文件存储在预先创建的第二路径;
生成模块,用于基于所述目录文件,生成所述目标应用的安装包。
可选的,所述生成模块包括:
标记子模块,用于若确定所述目录文件中任意一个程序模块的程序数据在所述模块修改过程中被修改,则在所述目录文件中标记该程序模块,以得到目标文件;
生成子模块,用于基于所述目标文件,生成所述目标应用的安装包。
可选的,所述标记子模块通过如下方式确定该程序模块的程序数据在所述模块修改过程中被修改:
获取预先确定的该程序模块对应的原始签名数据;
采用预设的加密算法计算该程序模块对应的当前签名数据;
若所述当前签名数据与所述原始签名数据不同,则确定该程序模块的程序数据在所述模块修改过程中被修改。
根据本申请实施例的第三方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一项所述的方法。
根据本申请实施例的第四方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述第一方面中任一项所述的方法。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请的实施例提供的用于生成应用安装包的方法和装置,通过下载目标应用对应的源数据至第一路径,该源数据为目标应用对应的一个或多个程序模块的源数据。基于该源数据确定目录文件,该目录文件记录有上述程序模块及每个程序模块的程序数据,以在模块修改过程中,修改任意程序模块的程序数据,该目录文件存储在预先创建的第二路径。基于该目录文件,生成目标应用的安装包。由于本实施例将基于上述源数据得到的目录文件存储在第二路径,从而打破了程序模块的数据与平台的数据仓库之间的强关联关系,使得程序开发者能够对下载的程序模块的数据进行任意修改,提高了平台数据仓库中程序模块的复用性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是本申请根据一示例性实施例示出的一种用于生成应用安装包的方法的流程图;
图2是本申请根据一示例性实施例示出的另一种用于生成应用安装包的方法的流程图;
图3是本申请根据一示例性实施例示出的另一种用于生成应用安装包的方法的流程图;
图4是本申请根据一示例性实施例示出的另一种用于生成应用安装包的方法的流程图;
图5是本申请根据一示例性实施例示出的一种用于生成应用安装包的装置的框图;
图6是本申请根据一示例性实施例示出的另一种用于生成应用安装包的装置的框图;
图7是本申请根据一示例性实施例示出的一种电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
如图1所示,图1是根据一示例性实施例示出的一种用于生成应用安装包的方法的流程图,该方法可以应用于终端设备中,也可以应用于服务器中。
该方法包括以下步骤:
在步骤101中,下载目标应用对应的源数据至第一路径,该源数据为目标应用对应的一个或多个程序模块的源数据。
在本实施例中,目标应用可以是待开发的应用程序,在开发目标应用的过程中,需要用到一个或多个程序模块。目标应用对应的配置文件中记录有上述程序模块的名称和版本号等信息,可以基于该配置文件从目标平台的数据仓库下载目标应用需要用到的程序模块的源数据,并将该源数据存储至第一路径。具体来说,可以在第一路径下生成一个模块目录,该模块目录中包括上述源数据。其中,该源数据可以是目标平台数据仓库中存储的程序代码数据,该第一路径为针对该目标平台创建的默认下载路径。
在步骤102中,基于该源数据确定目录文件,该目录文件记录有上述程序模块及每个程序模块的程序数据,以在模块修改过程中,修改任意程序模块的程序数据,该目录文件存储在预先创建的第二路径。
在本实施例中,可以基于该源数据确定目录文件,该目录文件中记录有目标应用需要用到的程序模块及每个程序模块对应的程序数据。并且,该目录文件存储在预先创建的第二路径,该第二路径不同于第一路径。
具体来说,在一种实现方式中,如果是首次开发目标应用,可以在第一路径下生成一个模块目录,该模块目录中包括上述源数据。然后,复制并存储该模块目录至第二路径,作为上述目录文件。
在另一种实现方式中,如果是非首次开发目标应用,首先,可以基于最新版本的目标应用的安装包,得到用于本次开发的初始文件。该初始文件中记录有目标应用需要用到的程序模块及每个程序模块的初始数据,将该初始文件存储至第二路径。接着,在第一路径下生成一个模块目录,该模块目录中包括上述源数据。然后,利用该模块目录对该初始文件进行更新,从而得到目录文件。
在本实施例中,针对目标应用的开发可以包括模块修改过程,在模块修改过程中,可以修改存储于第二路径的目录文件中任意程序模块的程序数据。
在步骤103中,基于该目录文件,生成目标应用的安装包。
在本实施例中,当完成对目标应用的开发后,需要生成目标应用的安装包,以向用户发布该安装包。可以按照第二路径取出目录文件,并基于该目录文件,生成目标应用的安装包。
具体来说,在一种实现方式中,可以直接基于该目录文件,生成目标应用的安装包。在另一种实现方式中,还可以遍历该目录文件中未被标记的程序模块,针对任意一个未被标记的程序模块,若确定该程序模块的程序数据在上述模块修改过程中被修改,则在该目录文件中标记该程序模块,以指示使该程序模块已经过修改,将经过标记后的目录文件作为目标文件。基于该目标文件,生成目标应用的安装包。
本申请的上述实施例提供的用于生成应用安装包的方法,通过下载目标应用对应的源数据至第一路径,该源数据为目标应用对应的一个或多个程序模块的源数据。基于该源数据确定目录文件,该目录文件记录有上述程序模块及每个程序模块的程序数据,以在模块修改过程中,修改任意程序模块的程序数据,该目录文件存储在预先创建的第二路径。基于该目录文件,生成目标应用的安装包。由于本实施例将基于上述源数据得到的目录文件存储在第二路径,从而打破了程序模块的数据与平台的数据仓库之间的强关联关系,使得程序开发者能够对下载的程序模块的数据进行任意修改,提高了平台数据仓库中程序模块的复用性。
如图2所示,图2根据一示例性实施例示出的另一种用于生成应用安装包的方法的流程图,该实施例描述了生成目标应用的安装包的过程,该方法可以应用于终端设备中,也可以应用于服务器中,包括以下步骤:
在步骤201中,下载目标应用对应的源数据至第一路径,该源数据为目标应用对应的一个或多个程序模块的源数据。
在步骤202中,基于该源数据确定目录文件,该目录文件记录有上述程序模块及每个程序模块的程序数据,以在模块修改过程中,修改任意程序模块的程序数据,该目录文件存储在预先创建的第二路径。
在步骤203中,若确定目录文件中任意一个程序模块的程序数据在模块修改过程中被修改,则在目录文件中标记该程序模块,以得到目标文件。
在本实施例中,该目录文件中可以包括未被标记的程序模块,也可以包括被标记的程序模块。需要说明的是,若是首次开发目标应用,则相应的目录文件中仅包括未被标记的程序模块。若是非首次开发目标应用,则相应的目录文件中即可以包括未被标记的程序模块,也可以包括被标记的程序模块。其中,被标记的程序模块在以往的开发过程中,程序数据曾经被修改过。例如,若当前为第三开发目标应用,则目录文件中被标记的程序模块的程序数据可能在第一次或者第二次开发目标应用时被修改过。
在本实施例中,在生成目标应用的安装包之前,可以遍历该目录文件中未被标记的程序模块,以确定每个未被标记的程序模块的程序数据是否在模块修改过程中被修改。针对任意一个未被标记的程序模块,若确定该程序模块的程序数据在模块修改过程中被修改,则在目录文件中标记该程序模块。将经过标记的目录文件作为目标文件。
具体来说,可以通过如下方式确定该程序模块的程序数据在上述模块修改过程中被修改:首先,获取预先确定的该程序模块对应的原始签名数据。该程序模块对应的原始签名数据,可以是采用预设的加密算法基于存储于第一路径的源数据而确定的。接着,采用上述预设的加密算法计算该程序模块对应的当前签名数据。若当前签名数据与原始签名数据不同,则可以确定该程序模块的程序数据在模块修改过程中被修改。
在步骤204中,基于目标文件,生成目标应用的安装包。
需要说明的是,对于与图1实施例中相同的步骤,在上述图2实施例中不再进行赘述,相关内容可参见图1实施例。
本申请的上述实施例提供的用于生成应用安装包的方法,通过下载目标应用对应的源数据至第一路径,该源数据为目标应用对应的一个或多个程序模块的源数据。基于该源数据确定目录文件,该目录文件记录有上述程序模块及每个程序模块的程序数据,以在模块修改过程中,修改任意程序模块的程序数据,该目录文件存储在预先创建的第二路径。若确定目录文件中任意一个程序模块的程序数据在模块修改过程中被修改,则在目录文件中标记该程序模块,以得到目标文件。基于目标文件,生成目标应用的安装包。由于本实施例在生成目标应用的安装包之前,首先确定在模块修改过程中被修改且在目录文件中未被标记的程序模块,并在用于生成安装包的文件中标记上述程序模块,以避免在以后再次开发或更新目标应用时,覆盖已修改过的程序模块的程序数据。从而使得程序开发者能够在不同的开发过程中,对下载的程序模块的数据进行任意修改,进一步提高了平台数据仓库中程序模块的复用性。
如图3所示,图3根据一示例性实施例示出的另一种用于生成应用安装包的方法的流程图,该实施例描述了确定目录文件的过程,该方法可以应用于终端设备中,也可以应用于服务器中,包括以下步骤:
在步骤301中,下载目标应用对应的源数据至第一路径,该源数据为目标应用对应的一个或多个程序模块的源数据。
在步骤302中,利用基于该源数据创建的模块目录,更新预先存储于第二路径的初始文件,得到目录文件,该目录文件记录有上述程序模块及每个程序模块的程序数据,以在模块修改过程中,修改目录文件中任意程序模块的程序数据。
在本实施例中,如果是非首次开发目标应用,可以首先基于最新版本的目标应用的安装包,得到用于本次开发的初始文件。该初始文件中记录有目标应用需要用到的程序模块及每个程序模块的初始数据,并将该初始文件存储至第二路径。接着,可以在第一路径下生成一个模块目录,该模块目录中包括上述源数据。最后,利用该模块目录对该初始文件进行更新,得到目录文件。
具体来说,可以通过如下方式利用该模块目录对该初始文件进行更新:确定该初始文件中未被标记的程序模块,查找上述模块目录中与上述未被标记的程序模块相对应的程序数据作为目标程序数据,用目标程序数据覆盖该初始文件中未被标记的程序模块的初始数据,从而完成更新。
在步骤303中,基于该目录文件,生成目标应用的安装包。
需要说明的是,对于与图1和图2实施例中相同的步骤,在上述图3实施例中不再进行赘述,相关内容可参见图1和图2实施例。
本申请的上述实施例提供的用于生成应用安装包的方法,通过下载目标应用对应的源数据至第一路径,该源数据为目标应用对应的一个或多个程序模块的源数据。利用基于该源数据创建的模块目录,更新预先存储于第二路径的初始文件,得到目录文件,该目录文件记录有上述程序模块及每个程序模块的程序数据,以在模块修改过程中,修改目录文件中任意程序模块的程序数据。基于该目录文件,生成目标应用的安装包。由于本实施例利用基于该源数据创建的模块目录,更新预先存储于第二路径的初始文件,得到目录文件,以在模块修改过程中,修改目录文件中任意程序模块的程序数据,从而不仅打破了程序模块的数据与平台的数据仓库之间的强关联关系,使得程序开发者能够对下载的程序模块的数据进行任意修改,而且还能够避免程序数据无法随平台数据仓库更新的问题。
如图4所示,图4根据一示例性实施例示出的另一种用于生成应用安装包的方法的流程图,该实施例描述了确定目录文件以及生成目标应用的安装包的过程,该方法可以应用于终端设备中,也可以应用于服务器中,包括以下步骤:
在步骤401中,下载目标应用对应的源数据至第一路径,该源数据为目标应用对应的一个或多个程序模块的源数据。
在步骤402中,利用基于该源数据创建的模块目录,更新预先存储于第二路径的初始文件,得到目录文件,该目录文件记录有上述程序模块及每个程序模块的程序数据,以在模块修改过程中,修改目录文件中任意程序模块的程序数据。
在步骤403中,若确定目录文件中任意一个程序模块的程序数据在模块修改过程中被修改,则在目录文件中标记该程序模块,以得到目标文件。
在步骤404中,基于目标文件,生成目标应用的安装包。
需要说明的是,对于与图1-图3实施例中相同的步骤,在上述图4实施例中不再进行赘述,相关内容可参见图1-图3实施例。
本申请的上述实施例提供的用于生成应用安装包的方法,通过下载目标应用对应的源数据至第一路径,该源数据为目标应用对应的一个或多个程序模块的源数据。利用基于该源数据创建的模块目录,更新预先存储于第二路径的初始文件,得到目录文件,该目录文件记录有上述程序模块及每个程序模块的程序数据,以在模块修改过程中,修改目录文件中任意程序模块的程序数据。若确定目录文件中任意一个程序模块的程序数据在模块修改过程中被修改,则在目录文件中标记该程序模块,以得到目标文件。基于目标文件,生成目标应用的安装包。从而不仅使得程序开发者能够对下载的程序模块的数据进行任意修改,而且还能够避免程序数据无法随平台数据仓库更新的问题。
应当注意,尽管在上述实施例中,以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
下面结合一个完整的应用实例,对本申请方案进行示意性说明。
应用场景可以包括首次开发目标应用的场景以及再次开发目标应用的场景:
程序开发者首次开发目标应用A的场景:可以首先获取目标应用A对应的配置文件。该配置文件中记录有开发目标应用A需要用到的程序模块a、b、c、d、e、f、g的名称和版本号等信息。可以基于该配置文件从目标平台的数据仓库获取程序模块a、b、c、d、e、f、g的源数据,并基于该源数据在第一路径下生成一个模块目录(该模块目录中包括上述源数据)。其中,该第一路径为针对该目标平台创建的默认下载路径。
接着,可以复制并存储该模块目录至第二路径,作为目录文件。采用预设的加密算法计算目录文件中的每个程序模块对应的签名数据,作为每个程序模块对应的原始签名数据,并进行存储。在对目标应用进行开发的过程中,需要进行模块修改。可以修改第二路径下目录文件中的任意程序模块的程序数据,例如,可以对程序模块a、d、g进行修改。
然后,在发布目标应用A之前,需要生成目标应用A的安装包B。可以取出第二路径下目录文件,遍历目录文件中的每个程序模块,采用预设的加密算法计算当前目录文件中的每个程序模块对应的签名数据,作为每个程序模块对应的当前签名数据。针对任意一个程序模块,若该程序模块的当前签名数据与原始签名数据不同,则说明该程序模块的程序数据在模块修改过程中被修改。可以在目录文件中标记被修改的程序模块,得到目标文件。例如,在模块修改过程中对程序模块a、d、g进行了修改,则程序模块a、d、g的当前签名数据与原始签名数据不同。可以在目录文件中对程序模块a、d、g进行标记,得到目标文件。
最后,基于目标文件,生成目标应用A的安装包B。
程序开发者再次开发目标应用A的场景:可以首先基于目标应用A的安装包B得到用于本次开发的初始文件。该初始文件中记录有目标应用A需要用到的程序模块a、b、c、d、e、f、g及每个程序模块的初始数据,并将该初始文件存储至第二路径。并且,可以获取目标应用A对应的配置文件,基于该配置文件从目标平台的数据仓库获取程序模块a、b、c、d、e、f、g的源数据,并基于该源数据在第一路径下生成一个模块目录。
接着,可以遍历该初始文件中的每个程序模块,查找出未被标记的程序模块,例如,未被标记的程序模块包括程序模块b、c、e、f。可以采用模块目录中程序模块b、c、e、f的源数据覆盖初始文件中程序模块b、c、e、f的初始数据,从而完成更新,得到目录文件。
接着,可以采用预设的加密算法计算目录文件中的每个未被标记的程序模块(程序模块b、c、e、f)对应的签名数据,作为原始签名数据,并进行存储。在对目标应用进行开发的过程中,可以进行模块修改,以修改第二路径下目录文件中的任意程序模块的程序数据,例如,可以对程序模块a、b、c进行修改。
然后,在发布更新目标应用A之前,需要生成目标应用A的更新安装包C。可以取出第二路径下目录文件,遍历目录文件中的每个未被标记的程序模块(程序模块b、c、e、f),采用预设的加密算法计算每个未被标记的程序模块对应的签名数据,作为当前签名数据。基于原始签名数据以及当前签名数据,可以确定在模块修改过程中未被标记的程序模块b、c被修改,在目录文件中对程序模块b、c进行标记,得到目标文件。
最后,基于目标文件,生成目标应用A的更新安装包C。
可见,应用上述方案,不仅使得程序开发者能够对下载的程序模块的数据进行任意修改,提高了平台数据仓库中程序模块的复用性,而且还能够避免程序数据无法随平台数据仓库更新的问题。
与前述用于生成应用安装包的方法实施例相对应,本申请还提供了用于生成应用安装包的装置的实施例。
如图5所示,图5是本申请根据一示例性实施例示出的一种用于生成应用安装包的装置框图,该装置可以包括:下载模块501,确定模块502以及生成模块503。
其中,下载模块501,用于下载目标应用对应的源数据至第一路径,该源数据为目标应用对应的一个或多个程序模块的源数据。
确定模块502,用于基于上述源数据确定目录文件,该目录文件记录有上述程序模块及每个程序模块的程序数据,以在模块修改过程中,修改任意程序模块的程序数据,该目录文件存储在预先创建的第二路径。
生成模块503,用于基于该目录文件,生成目标应用的安装包。
如图6所示,图6是本申请根据一示例性实施例示出的另一种用于生成应用安装包的装置框图,该实施例在前述图5所示实施例的基础上,生成模块503可以包括:标记子模块601和生成子模块602。
其中,标记子模块601,用于若确定目录文件中任意一个程序模块的程序数据在所述模块修改过程中被修改,则在该目录文件中标记该程序模块,以得到目标文件。
生成子模块602,用于基于上述目标文件,生成该目标应用的安装包。
在一些可选实施方式中,标记子模块601通过如下方式确定该程序模块的程序数据在模块修改过程中被修改:获取预先确定的该程序模块对应的原始签名数据,采用预设的加密算法计算该程序模块对应的当前签名数据,若当前签名数据与原始签名数据不同,则确定该程序模块的程序数据在模块修改过程中被修改。
在另一些可选实施方式中,确定模块502被配置用于:将基于上述源数据创建的模块目录存储至第二路径,作为目录文件。
或者,利用基于上述源数据创建的模块目录,更新预先存储于第二路径的初始文件,得到目录文件,该初始文件记录有上述程序模块及每个程序模块的初始数据。
在另一些可选实施方式中,确定模块502可以通过如下方式利用基于上述源数据创建的模块目录,更新预先存储于第二路径的初始文件:确定初始文件中未被标记的程序模块,并采用模块目录对未被标记的程序模块的初始数据进行更新。
应当理解,上述装置可以预先设置在终端设备或服务器中,也可以通过下载等方式而加载到终端设备或服务器中。上述装置中的相应模块可以与终端设备或服务器中的模块相互配合以实现用于生成应用安装包的方案。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请实施例还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1至图4任一实施例提供的用于生成应用安装包的方法。
对应于上述的用于生成应用安装包的方法,本申请实施例还提出了图7所示的根据本申请的一示例性实施例的电子设备的示意结构图。请参考图7,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成用于生成应用安装包的装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (10)
1.一种用于生成应用安装包的方法,其特征在于,所述方法包括:
下载所述目标应用对应的源数据至第一路径,所述源数据为所述目标应用对应的一个或多个程序模块的源数据;
基于所述源数据确定目录文件,所述目录文件记录有所述程序模块及每个所述程序模块的程序数据,以在模块修改过程中,修改任意所述程序模块的程序数据;所述目录文件存储在预先创建的第二路径;
基于所述目录文件,生成所述目标应用的安装包。
2.根据权利要求1所述的方法,其特征在于,所述基于所述目录文件,生成所述目标应用的安装包,包括:
若确定所述目录文件中任意一个程序模块的程序数据在所述模块修改过程中被修改,则在所述目录文件中标记该程序模块,以得到目标文件;
基于所述目标文件,生成所述目标应用的安装包。
3.根据权利要求2所述的方法,其特征在于,通过如下方式确定该程序模块的程序数据在所述模块修改过程中被修改:
获取预先确定的该程序模块对应的原始签名数据;
采用预设的加密算法计算该程序模块对应的当前签名数据;
若所述当前签名数据与所述原始签名数据不同,则确定该程序模块的程序数据在所述模块修改过程中被修改。
4.根据权利要求2或3所述的方法,其特征在于,所述基于所述源数据确定目录文件,包括:
将基于所述源数据创建的模块目录存储至所述第二路径,作为所述目录文件;或者
利用基于所述源数据创建的模块目录,更新预先存储于所述第二路径的初始文件,得到所述目录文件;所述初始文件记录有所述程序模块及每个所述程序模块的初始数据。
5.根据权利要求4所述的方法,其特征在于,所述基于所述源数据确定目录文件,包括:利用基于所述源数据创建的模块目录,更新预先存储于所述第二路径的初始文件,得到所述目录文件;
其中,所述利用基于所述源数据创建的模块目录,更新预先存储于所述第二路径的初始文件,包括:
确定所述初始文件中未被标记的程序模块;
采用所述模块目录对所述未被标记的程序模块的初始数据进行更新。
6.一种用于生成应用安装包的装置,其特征在于,所述装置包括:
下载模块,用于下载所述目标应用对应的源数据至第一路径,所述源数据为所述目标应用对应的一个或多个程序模块的源数据;
确定模块,用于基于所述源数据确定目录文件,所述目录文件记录有所述程序模块及每个所述程序模块的程序数据,以在模块修改过程中,修改任意所述程序模块的程序数据;所述目录文件存储在预先创建的第二路径;
生成模块,用于基于所述目录文件,生成所述目标应用的安装包。
7.根据权利要求6所述的装置,其特征在于,所述生成模块包括:
标记子模块,用于若确定所述目录文件中任意一个程序模块的程序数据在所述模块修改过程中被修改,则在所述目录文件中标记该程序模块,以得到目标文件;
生成子模块,用于基于所述目标文件,生成所述目标应用的安装包。
8.根据权利要求7所述的装置,其特征在于,所述标记子模块通过如下方式确定该程序模块的程序数据在所述模块修改过程中被修改:
获取预先确定的该程序模块对应的原始签名数据;
采用预设的加密算法计算该程序模块对应的当前签名数据;
若所述当前签名数据与所述原始签名数据不同,则确定该程序模块的程序数据在所述模块修改过程中被修改。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1-5中任一项所述的方法。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811594715.9A CN109739544B (zh) | 2018-12-25 | 2018-12-25 | 用于生成应用安装包的方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811594715.9A CN109739544B (zh) | 2018-12-25 | 2018-12-25 | 用于生成应用安装包的方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109739544A true CN109739544A (zh) | 2019-05-10 |
CN109739544B CN109739544B (zh) | 2022-11-04 |
Family
ID=66359828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811594715.9A Active CN109739544B (zh) | 2018-12-25 | 2018-12-25 | 用于生成应用安装包的方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109739544B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110788A (zh) * | 2006-07-20 | 2008-01-23 | 阿里巴巴公司 | 升级客户端软件的方法及系统 |
US20080245005A1 (en) * | 2007-04-09 | 2008-10-09 | Fennell Harry C | Reusable Modular Block Wall Assembly System |
CN101552976A (zh) * | 2009-04-29 | 2009-10-07 | 中兴通讯股份有限公司 | 多业务格式文件处理系统及方法 |
CN102902558A (zh) * | 2012-09-11 | 2013-01-30 | 新浪网技术(中国)有限公司 | 项目脚本文件更新系统和方法、脚本文件合并方法和装置 |
CN103955363A (zh) * | 2014-04-08 | 2014-07-30 | 国云科技股份有限公司 | 一种程序升级安装包的制作方法 |
US8825817B1 (en) * | 2012-03-19 | 2014-09-02 | Amazon Technologies, Inc. | Using a template to update a stack of resources |
CN105320554A (zh) * | 2015-12-11 | 2016-02-10 | 网易(杭州)网络有限公司 | 程序更新的方法、用于程序更新的客户端及系统 |
CN105915623A (zh) * | 2016-05-20 | 2016-08-31 | 努比亚技术有限公司 | 应用安装包处理装置及方法 |
CN106648696A (zh) * | 2016-12-30 | 2017-05-10 | 腾讯科技(深圳)有限公司 | 一种资源管理的方法及服务器 |
CN107506221A (zh) * | 2017-09-28 | 2017-12-22 | 阿里巴巴集团控股有限公司 | 应用程序升级方法、装置及设备 |
WO2018068633A1 (zh) * | 2016-10-11 | 2018-04-19 | 阿里巴巴集团控股有限公司 | 一种防重打包的方法及其装置 |
CN108173906A (zh) * | 2017-12-07 | 2018-06-15 | 东软集团股份有限公司 | 安装包下载方法、装置、存储介质及电子设备 |
CN108446125A (zh) * | 2018-03-23 | 2018-08-24 | 北京潘达互娱科技有限公司 | 应用程序安装包生成方法、装置、设备及系统 |
-
2018
- 2018-12-25 CN CN201811594715.9A patent/CN109739544B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110788A (zh) * | 2006-07-20 | 2008-01-23 | 阿里巴巴公司 | 升级客户端软件的方法及系统 |
US20080245005A1 (en) * | 2007-04-09 | 2008-10-09 | Fennell Harry C | Reusable Modular Block Wall Assembly System |
CN101552976A (zh) * | 2009-04-29 | 2009-10-07 | 中兴通讯股份有限公司 | 多业务格式文件处理系统及方法 |
US8825817B1 (en) * | 2012-03-19 | 2014-09-02 | Amazon Technologies, Inc. | Using a template to update a stack of resources |
CN102902558A (zh) * | 2012-09-11 | 2013-01-30 | 新浪网技术(中国)有限公司 | 项目脚本文件更新系统和方法、脚本文件合并方法和装置 |
CN103955363A (zh) * | 2014-04-08 | 2014-07-30 | 国云科技股份有限公司 | 一种程序升级安装包的制作方法 |
CN105320554A (zh) * | 2015-12-11 | 2016-02-10 | 网易(杭州)网络有限公司 | 程序更新的方法、用于程序更新的客户端及系统 |
CN105915623A (zh) * | 2016-05-20 | 2016-08-31 | 努比亚技术有限公司 | 应用安装包处理装置及方法 |
WO2018068633A1 (zh) * | 2016-10-11 | 2018-04-19 | 阿里巴巴集团控股有限公司 | 一种防重打包的方法及其装置 |
CN106648696A (zh) * | 2016-12-30 | 2017-05-10 | 腾讯科技(深圳)有限公司 | 一种资源管理的方法及服务器 |
CN107506221A (zh) * | 2017-09-28 | 2017-12-22 | 阿里巴巴集团控股有限公司 | 应用程序升级方法、装置及设备 |
CN108173906A (zh) * | 2017-12-07 | 2018-06-15 | 东软集团股份有限公司 | 安装包下载方法、装置、存储介质及电子设备 |
CN108446125A (zh) * | 2018-03-23 | 2018-08-24 | 北京潘达互娱科技有限公司 | 应用程序安装包生成方法、装置、设备及系统 |
Non-Patent Citations (3)
Title |
---|
COYPAN: "vue项目中怎么将node_modules安装的文件更改到项目目录中", 《SEGMENTFAULT.COM/Q/1010000015558391》 * |
G. BRUNO等: "Rolls: modifying a standard system installer to support user-customizable cluster frontend appliances", 《2004 IEEE INTERNATIONAL CONFERENCE ON CLUSTER COMPUTING》 * |
刘甜: "软件发布机制的研究与应用", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN109739544B (zh) | 2022-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11372980B2 (en) | Blockchains for software component vulnerability databases | |
US10055216B2 (en) | Minimizing image copying during partition updates | |
CN105373396B (zh) | 插件平台中的插件更新加载方法和装置 | |
CN107506221A (zh) | 应用程序升级方法、装置及设备 | |
US9032207B2 (en) | Method and system for processing digital content according to a workflow | |
US11210404B2 (en) | Blockchain-based state verifications of software component vulnerability database for software products | |
US10338910B2 (en) | Multi-tenant upgrading | |
CN108595191A (zh) | 一种应用安装方法及装置 | |
CN110209420A (zh) | 一种更新引导加载程序的方法及装置 | |
CN112702195A (zh) | 网关配置方法、电子设备及计算机可读存储介质 | |
JP2000347866A (ja) | 分散システムとアクセス制御装置及び方法、並びにアクセス制御用プログラムを記録した記録媒体 | |
CN112685091A (zh) | 基于大数据的业务请求处理方法、装置、设备和介质 | |
Shirinkin | Getting Started with Terraform | |
CN110716786B (zh) | 一种页面展示方法、系统及存储介质 | |
CN108694049B (zh) | 一种更新软件的方法和设备 | |
CN109597627A (zh) | 一种组件安装方法、装置、存储介质和处理器 | |
KR20150133902A (ko) | 소프트웨어 제품 라인에 기반한 서비스 개발 시스템 및 방법 | |
CN107357691B (zh) | 镜像文件的处理方法及装置 | |
CN109739544A (zh) | 用于生成应用安装包的方法、装置及电子设备 | |
JP5257016B2 (ja) | 更新関数検証プログラム,更新関数検証方法及び情報処理装置 | |
US10606612B2 (en) | Context check bypass to enable opening shared-object libraries | |
Lascu et al. | Automatic component deployment in the presence of circular dependencies | |
CN107844535B (zh) | 一种外部资源库调用方法及系统 | |
CN108052335A (zh) | 数据管理方法、装置、计算设备及存储介质 | |
US20180131725A1 (en) | Method and apparatus for mobile terminal management supporting security policy |
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 |