一种应用安装包的生成方法和装置与流程

文档序号:21970962发布日期:2020-08-25 19:00阅读:99来源:国知局
一种应用安装包的生成方法和装置与流程

本发明涉及数据处理技术领域,特别是涉及一种应用安装包的生成方法和一种应用安装包的生成装置。



背景技术:

应用安装包是应用程序进行安装时的所有文件的集合,通过在电子设备(如手机,笔记本电脑等)上运行应用安装包,应用程序的所有文件将释放到电子设备磁盘上,完成应用在电子设备上的装载。

随着应用程序功能的不断丰富,开发人员在开发应用程序之初,需要对应用程序所需要的数据、运行框架等进行整合,从而生成应用程序的安装包。然而,随着应用程序的功能迭代,开发与维护的过程中需要不断的添加相应的代码和资源,一方面容易导致应用程序安装包内存越来越大,以及构建效率低下,另一方面由于代码与资源不断地增加,使得开发人员需要对冗杂的代码与资源进行处理,导致应用程序的更新维护所需的时间越来越长,严重影响了应用程序的维护效率。因此,需要一种能够快速构建应用程序,且在后续应用程序的维护过程中,可以方便开发人员进行维护的方式。



技术实现要素:

本发明实施例是提供一种应用安装包的生成方法,以解决现有技术中应用程序安装包的开发与维护效率低下的问题。

相应的,本发明实施例还提供了一种应用安装包的生成装置,用以保证上述方法的实现及应用。

为了解决上述问题,本发明实施例公开了一种应用安装包的生成方法,包括:

获取应用程序的至少一个应用数据,与所述应用数据匹配的资源数据;

确定针对所述资源数据的资源依赖关系;

根据所述资源依赖关系与所述资源数据,并行构建针对所述应用数据的基础安装包与拓展安装包;

根据所述基础安装包与至少一个所述拓展安装包,生成与所述应用程序匹配的应用安装包。

可选地,所述应用数据包括基础应用数据以及拓展应用数据,所述根据所述资源依赖关系与所述资源数据,并行构建针对所述应用数据的基础安装包与拓展安装包,包括:

根据所述资源依赖关系,从所述资源数据中确定与所述基础应用数据匹配的基础资源数据,以及与所述拓展应用数据匹配的拓展资源数据;

采用所述基础资源数据与所述基础应用数据,构建所述基础安装包;

采用所述拓展资源数据与所述拓展应用数据,构建所述拓展安装包。

可选地,所述确定针对所述资源数据的资源依赖关系,包括:

当所述基础应用数据依赖第一资源数据时,则建立所述基础应用数据与所述第一资源数据的第一依赖关系;

当所述基础应用数据与所述拓展应用数据依赖第二资源数据时,则建立所述基础应用数据与所述第二资源数据的第二依赖关系;

当至少一个所述拓展应用数据依赖第三资源数据时,则建立所述基础应用数据与所述第三资源数据的第三依赖关系;

当所述拓展应用数据依赖第四资源数据时,则建立所述拓展应用数据与所述第四资源数据的第四依赖关系。

可选地,所述根据所述资源依赖关系,从所述资源数据中确定与所述基础应用数据匹配的基础资源数据,以及与所述拓展应用数据匹配的拓展资源数据,包括:

采用所述第一依赖关系,与,所述第二依赖关系,与,所述第三依赖关系,确定与所述基础应用数据匹配的基础资源数据;

采用所述第四依赖关系,确定与所述拓展应用数据匹配的拓展资源数据。

本发明实施例还公开了一种应用安装包的生成装置,包括:

数据获取模块,用于获取应用程序的至少一个应用数据,与所述应用数据匹配的资源数据;

资源依赖关系确定模块,用于确定针对所述资源数据的资源依赖关系;

安装包构建模块,用于根据所述资源依赖关系与所述资源数据,并行构建针对所述应用数据的基础安装包与拓展安装包;

应用安装包生成模块,用于根据所述基础安装包与至少一个所述拓展安装包,生成与所述应用程序匹配的应用安装包。

可选地,所述应用数据包括基础应用数据以及拓展应用数据,所述安装包构建模块包括:

资源数据确定子模块,用于根据所述资源依赖关系,从所述资源数据中确定与所述基础应用数据匹配的基础资源数据,以及与所述拓展应用数据匹配的拓展资源数据;

基础安装包构建子模块,用于采用所述基础资源数据与所述基础应用数据,构建所述基础安装包;

拓展安装包构建子模块,用于采用所述拓展资源数据与所述拓展应用数据,构建所述拓展安装包。

可选地,所述资源依赖关系确定模块具体用于:

当所述基础应用数据依赖第一资源数据时,则建立所述基础应用数据与所述第一资源数据的第一依赖关系;

当所述基础应用数据与所述拓展应用数据依赖第二资源数据时,则建立所述基础应用数据与所述第二资源数据的第二依赖关系;

当至少一个所述拓展应用数据依赖第三资源数据时,则建立所述基础应用数据与所述第三资源数据的第三依赖关系;

当所述拓展应用数据依赖第四资源数据时,则建立所述拓展应用数据与所述第四资源数据的第四依赖关系。

可选地,所述资源数据确定子模块具体用于:

采用所述第一依赖关系,与,所述第二依赖关系,与,所述第三依赖关系,确定与所述基础应用数据匹配的基础资源数据;

采用所述第四依赖关系,确定与所述拓展应用数据匹配的拓展资源数据。

本发明实施例还公开了一种电子设备,包括:

一个或多个处理器;和

其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如上所述的一个或多个的方法。

本发明实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如上所述的一个或多个的方法。

本发明实施例包括以下优点:

在本发明实施例中,通过获取应用程序的至少一个应用数据,以及与应用数据匹配的资源数据,然后确定资源数据的资源依赖关系,接着根据资源依赖关系与资源数据,并行构建针对应用数据的基础安装包与拓展安装包,然后可以根据基础安装包与至少一个拓展安装包,生成与所述应用程序匹配的应用安装包,实现了在应用安装包的构建过程中,对于不同的应用数据,可以并行构建安装包,有效提高了应用安装包的构建效率,并且在维护应用程序的过程中,可以对相应的安装包进行更新维护,提高了安装包维护的便利性。

附图说明

图1是本发明的一种应用安装包的生成方法实施例的步骤流程图;

图2是本发明实施例中应用模块拆分规则的示意图;

图3是本发明实施例中应用模块拆分规则的示意图;

图4是本发明实施例中应用模块拆分规则的示意图;

图5是本发明实施例中apk生成的示意图;

图6是本发明实施例中应用安装包生成的示意图;

图7是本发明的一种应用安装包的生成装置实施例的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

基础安装包可以为应用程序的安装包,其包括应用程序运行的基本资源与代码,如用户安装了应用程序后,运行应用程序,则应用程序可以加载基础安装包中的资源,提供应用程序的基础应用功能。

拓展安装包可以包括应用程序中某个模块的拓展资源与代码,应用程序可以包括多个模块,如在应用程序的首页中,可以提供多个不同的应用模块,当用户进入对应的应用模块时,应用程序可以加载拓展安装包,并为用户提供相应的应用服务。对于应用程序的应用安装包,可以包括至少一个拓展安装包。

在开发android程序时,除了基本功能块(应用项目)之外,一般还会有一个或多个拓展功能块(或依赖项目),拓展功能块通常和应用项目类似,你可以使用相同的任务来构建和测试拓展功能块,不同之处是应用项目将生成一个可以被安装和运行在android设备上的apk(androidapplicationpackage,android应用程序包)文件,拓展功能块则生成一个aar文件,该文件可以被android应用项目(主项目)用作依赖库。

然而,在每个moudle库发布aar(androidarchive)文件时,需要将每个moudle库的代码预编译为dex上传,发布aar时间较长,且无法同时处理每个moudle库的资源,容易降低应用程序构建的效率。因此,本发明实施例的核心构思之一在于在应用程序开发的过程中,针对不同的应用数据,构建不同的安装包,有效提高了应用安装包的构建效率,然后在应用程序发布时,进行全量安装包,即将所有安装包组合成应用程序的应用安装包进行发布,保证了应用程序数据的完整性,并且在需要更新应用,可以对相应模块的安装包进行更新,提高了安装包维护的便利性。

参照图1,示出了本发明的一种应用安装包的生成方法实施例的步骤流程图,具体可以包括如下步骤:

步骤101,获取应用程序的至少一个应用数据,与所述应用数据匹配的资源数据;

在本发明实施例中,应用数据可以为应用程序的应用模块数据,不同的应用模块可以提供不同的应用功能,且不同的应用模块可以对应不同的资源数据,也可以对应相同的资源数据。其中,资源数据可以为程序库(library),其包括可供使用的各种标砖程序、子程序、文件以及对应信息的有序集合,在应用程序运行的过程中,应用数据依赖于library中的代码和资源。其中,应用数据可以包括基础应用数据以及拓展应用数据,基础应用数据可以为应用程序能够提供的基础应用功能,拓展应用数据为应用程序提供的拓展应用功能。

步骤102,确定针对所述资源数据的资源依赖关系;

在具体实现中,由于不同的应用模块可以对应不同的资源数据,也可以对应相同的资源数据,则需要先确定应用程序中各个应用数据所依赖的资源数据,从而确定应用程序中资源数据所对应的资源依赖关系,并通过资源依赖关系,指导应用模块的构建。

需要说明的是,资源依赖关系可以为应用程序中应用数据与资源数据之间的对应关系,例如,应用数据一依赖于资源数据①,应用数据二依赖于资源数据②,应用数据三依赖于资源数据①或资源数据②等等。

在本发明的一种可选实施例中,当基础应用数据依赖第一资源数据时,则建立基础应用数据与第一资源数据的第一依赖关系;当基础应用数据与拓展应用数据依赖第二资源数据时,则建立基础应用数据与第二资源数据的第二依赖关系;当至少一个拓展应用数据依赖第三资源数据时,则建立基础应用数据与第三资源数据的第三依赖关系;当拓展应用数据依赖第四资源数据时,则建立拓展应用数据与第四资源数据的第四依赖关系,从而可以根据应用数据与资源数据之间的依赖关系,确定资源依赖关系。

在一种示例中,如图2、图3以及图4所示,示出了本发明实施例中应用模块拆分规则的示意图,其中,app表示基础应用数据,dynamic-featuren表示拓展应用数据,library表示拓展应用数据依赖的library库,common表示基础应用数据依赖的公共资源库。在图2中,资源依赖关系可以为app依赖于common库,dynamic-featurea依赖于library库;在图3中,资源依赖关系可以为app依赖于common库,dynamic-featurea依赖于library库,dynamic-featureb依赖于library库,然而feature模块无法共同依赖同一个library库,需要将library库添加到app中,得到图4所示的资源依赖关系,即app依赖于common库以及library库。

具体的,可以将与app库有直接或间接依赖的都会放入基础apk中,featuremoudle直接或间接依赖的库而不被app依赖的库会放入拓展应用apk中,以及featuremoudle间不能同时依赖相同的库,需要将其放入app库的依赖中。

步骤103,根据所述资源依赖关系与所述资源数据,并行构建针对所述应用数据的基础安装包与拓展安装包;

当确定了资源依赖关系之后,可以通过资源依赖关系指导应用模块的构建,从而根据资源依赖关系与资源数据,并行构建或单独构建应用数据对应的安装包,有效提高了应用安装包的构建效率,并且在需要更新应用,可以对相应的安装包进行更新,提高了安装包维护的便利性。

在具体实现中,安装包可以包括基础安装包与拓展安装包,其中,基础安装包可以为基础apk,拓展安装包可以为拓展应用apk,基础apk可以提供基础的应用功能,拓展应用apk可以提供相应的拓展应用功能。

在本发明的一种可选实施例中,步骤103可以包括如下步骤:根据资源依赖关系,从资源数据中确定与基础应用数据匹配的基础资源数据,以及与拓展应用数据匹配的拓展资源数据;采用基础资源数据与基础应用数据,构建基础安装包;采用拓展资源数据与拓展应用数据,构建拓展安装包,从而通过资源依赖关系,可以快速确定各个应用数据所对应的资源数据,进一步加快了应用程序构建的效率。

在具体实现中,可以采用第一依赖关系,与,第二依赖关系,与,第三依赖关系,确定与基础应用数据匹配的基础资源数据;以及采用第四依赖关系,确定与拓展应用数据匹配的拓展资源数据,从而采用基础资源数据与基础应用数据,构建基础安装包,以及采用拓展资源数据与拓展应用数据,构建拓展安装包。

在一种示例中,应用数据中可以包括代码和资源等数据,则对于图2中所示的资源依赖关系,可以将采用app库的代码和资源与common库的代码和资源构建一个基础apk,以及可以采用dynamic-featurea的代码和资源与library库的代码和资源构建一个拓展应用apk。

在另一种示例中,对于图4中所示的资源依赖关系,可以采用app库的代码和资源与library库的代码和资源、common库的代码和资源构建一个基础apk,以及可以采用dynamic-featurea的代码和资源构建一个应用apk,采用dynamic-featureb的代码和资源构建一个拓展应用apk。

步骤104,根据所述基础安装包与至少一个所述拓展安装包,生成应用安装包。

当构建了基础安装包以及至少一个拓展安装包后,每个安装包可以作为应用程序的一个子安装包,接着将所有的子安装包统一构建为一个整体的应用安装包,并进行发布,从而用户可以下载该应用安装包,并安装于用户终端中。

作为一种示例,可以基于androidappbundle模块拆分规则对应用程序进行开发,针对不同的应用数据,可以并行构建或单独构建apk,从而实现多线程开发应用程序的不同应用模块,有效地提高了应用程序开发的效率,并且可以实现当需要维护某个应用模块的资源或代码时,可以单独维护对应的应用模块,提高了安装包维护的便利性。当完成各个apk的构建后,可以将各个应用模块对应的apk统一构建为一个整体的apk,并进行发布,基础应用数据可以依赖各个拓展应用模块对应的资源数据。

在本发明实施例中,通过获取应用程序的至少一个应用数据,以及与应用数据匹配的资源数据,然后确定资源数据的资源依赖关系,接着根据资源依赖关系与资源数据,并行构建针对应用数据的基础安装包与拓展安装包,然后可以根据基础安装包与至少一个拓展安装包,生成与所述应用程序匹配的应用安装包,实现了在应用安装包的构建过程中,对于不同的应用数据,可以并行构建安装包,有效提高了应用安装包的构建效率,并且在维护应用程序的过程中,可以对相应的安装包进行更新维护,提高了安装包维护的便利性。

为了使本领域技术人员能够更好地理解本申请实施例,下面通过一个例子对本申请实施例加以说明:

如图5所示,示出了本发明实施例中apk生成的示意图,应用程序可以包括客户端application、housefakefeature、ajkhousefakefeature以及carfakefeature等应用功能模块,其中,资源依赖关系可以包括:客户端application依赖baselibrary、housefakefeature依赖houselibrary、ajkhousefakefeature依赖houseajklibrary与58aujukelibrary、carfakefeature依赖carlibrary等。则可以采用客户端application与baselibrary构建baseapk,采用housefakefeature与houselibrary构建houseapk,采用ajkhousefakefeature与houseajklibrary以及58aujukelibrary构建anjukeapk,以及采用carfakefeature与carlibrary构建carapk,从而可以并行构建或单独构建应用功能模块对应的apk,实现多线程开发应用程序的不同应用模块,有效地提高了应用程序开发的效率,并且可以实现当需要维护某个应用模块的资源或代码时,可以单独维护对应的应用模块,提高了安装包维护的便利性。

如图6所示,示出了本发明实施例中应用安装包生成的示意图,当完成各个apk的构建后,可以将各个应用模块对应的apk统一构建为一个整体的apk,并进行发布,基础应用数据可以依赖各个拓展应用模块对应的资源数据。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

参照图7,示出了本发明的一种应用安装包的生成装置实施例的结构框图,具体可以包括如下模块:

数据获取模块701,用于获取应用程序的至少一个应用数据,与所述应用数据匹配的资源数据;

资源依赖关系确定模块702,用于确定针对所述资源数据的资源依赖关系;

安装包构建模块703,用于根据所述资源依赖关系与所述资源数据,并行构建针对所述应用数据的基础安装包与拓展安装包;

应用安装包生成模块704,用于根据所述基础安装包与至少一个所述拓展安装包,生成与所述应用程序匹配的应用安装包。

在本发明的一种可选实施例中,所述应用数据包括基础应用数据与拓展应用数据,所述安装包构建模块703包括:

资源数据确定子模块,用于根据所述资源依赖关系,从所述资源数据中确定与所述基础应用数据匹配的基础资源数据,以及与所述拓展应用数据匹配的拓展资源数据;

基础安装包构建子模块,用于采用所述基础资源数据与所述基础应用数据,构建所述基础安装包;

拓展安装包构建子模块,用于采用所述拓展资源数据与所述拓展应用数据,构建所述拓展安装包。

在本发明的一种可选实施例中,所述资源依赖关系确定模块702具体用于:

当所述基础应用数据依赖第一资源数据时,则建立所述基础应用数据与所述第一资源数据的第一依赖关系;

当所述基础应用数据与所述拓展应用数据依赖第二资源数据时,则建立所述基础应用数据与所述第二资源数据的第二依赖关系;

当至少一个所述拓展应用数据依赖第三资源数据时,则建立所述基础应用数据与所述第三资源数据的第三依赖关系;

当所述拓展应用数据依赖第四资源数据时,则建立所述拓展应用数据与所述第四资源数据的第四依赖关系。

在本发明的一种可选实施例中,所述资源数据确定子模块具体用于:

采用所述第一依赖关系,与,所述第二依赖关系,与,所述第三依赖关系,确定与所述基础应用数据匹配的基础资源数据;

采用所述第四依赖关系,确定与所述拓展应用数据匹配的拓展资源数据。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本发明实施例还提供了一种电子设备,包括:

一个或多个处理器;和

其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行本发明实施例所述的方法。

本发明实施例还提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行本发明实施例所述的方法。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

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

以上对本发明所提供的一种应用安装包的生成方法和一种应用安装包的生成装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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