CN109857405A - 应用程序安装包的编译方法、装置、存储介质及终端 - Google Patents
应用程序安装包的编译方法、装置、存储介质及终端 Download PDFInfo
- Publication number
- CN109857405A CN109857405A CN201910107590.0A CN201910107590A CN109857405A CN 109857405 A CN109857405 A CN 109857405A CN 201910107590 A CN201910107590 A CN 201910107590A CN 109857405 A CN109857405 A CN 109857405A
- Authority
- CN
- China
- Prior art keywords
- application
- folder
- file
- target
- version
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000003860 storage Methods 0.000 title claims abstract description 26
- 230000001419 dependent effect Effects 0.000 claims abstract description 105
- 230000006870 function Effects 0.000 claims description 21
- 238000011161 development Methods 0.000 claims description 14
- 238000004519 manufacturing process Methods 0.000 claims description 9
- 238000009434 installation Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 229910052799 carbon Inorganic materials 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000005086 pumping Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本申请实施例公开了应用程序安装包的编译方法、装置、存储介质及终端。该方法包括:确定目标应用程序的当前待编译的目标应用版本,确定目标应用程序对应的待编译资源中,与目标应用版本对应的目标依赖文件夹,其中,待编译资源中包含目标应用程序对应的主文件夹和至少两个依赖文件夹,主文件夹中包含所有应用版本对应的公共资源和公共代码,至少两个依赖文件夹中的每个依赖文件夹分别对应一个应用版本,包含所对应的应用版本的私有资源和私有代码,通过访问主文件夹和目标依赖文件夹来进行针对所述目标应用版本的编译操作。本申请实施例通过采用上述技术方案,可以提高分支版本的应用程序安装包的编译效率。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及应用程序安装包的编译方法、装置、存储介质及终端。
背景技术
目前,智能终端已成为多数用户日常生活中必备的电子设备。随着智能终端技术的快速发展,智能终端中的功能也越来越完善,能够安装各种各样的应用程序,可满足用户多样的使用需求。
应用程序开发者通常需要经过编译及打包等操作来输出应用程序安装包,进而将应用程序安装到智能终端中。随着智能终端越来越多样化,同一个应用程序可能需要针对智能终端的差异而进行有针对性的设计,如针对国内版本和国外版本生成不同版本的应用程序安装包。目前,针对同一应用程序的不同版本的应用程序安装包的编译方案仍不够完善,需要改进。
发明内容
本申请实施例提供一种应用程序安装包的编译方法、装置、存储介质及终端,可以优化应用程序安装包的编译方案。
第一方面,本申请实施例提供了一种应用程序安装包的编译方法,包括:
确定目标应用程序的当前待编译的目标应用版本,其中,所述目标应用程序包含至少两个应用版本;
确定所述目标应用程序对应的待编译资源中,与所述目标应用版本对应的目标依赖文件夹,其中,所述待编译资源中包含所述目标应用程序对应的主文件夹和至少两个依赖文件夹,所述主文件夹中包含所有应用版本对应的公共资源和公共代码,所述至少两个依赖文件夹中的每个依赖文件夹分别对应一个应用版本,包含所对应的应用版本的私有资源和私有代码;
通过访问所述主文件夹和所述目标依赖文件夹来进行针对所述目标应用版本的编译操作。
第二方面,本申请实施例提供了一种应用程序安装包的编译装置,包括:
目标版本确定模块,用于确定目标应用程序的当前待编译的目标应用版本,其中,所述目标应用程序包含至少两个应用版本;
目标依赖文件夹确定模块,用于确定所述目标应用程序对应的待编译资源中,与所述目标应用版本对应的目标依赖文件夹,其中,所述待编译资源中包含所述目标应用程序对应的主文件夹和至少两个依赖文件夹,所述主文件夹中包含所有应用版本对应的公共资源和公共代码,所述至少两个依赖文件夹中的每个依赖文件夹分别对应一个应用版本,包含所对应的应用版本的私有资源和私有代码;
编译模块,用于通过访问所述主文件夹和所述目标依赖文件夹来进行针对所述目标应用版本的编译操作。
第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的应用程序安装包的编译方法。
第四方面,本申请实施例提供了一种终端,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例所述的应用程序安装包的编译方法。
本申请实施例中提供的应用程序安装包的编译方案,确定目标应用程序的当前待编译的目标应用版本,其中,目标应用程序包含至少两个应用版本,确定目标应用程序对应的待编译资源中对应的目标依赖文件夹,其中,待编译资源中包含目标应用程序对应的主文件夹和至少两个依赖文件夹,主文件夹中包含所有应用版本对应的公共资源和公共代码,每个依赖文件夹分别对应一个应用版本,包含所对应的应用版本的私有资源和私有代码,通过访问主文件夹和目标依赖文件夹来进行针对目标应用版本的编译操作。通过采用上述技术方案,可以将用于编译目标应用程序不同版本的待编译资源进行分类存储,包括公共部分和每个版本的私有部分,方便开发人员进行待编译资源的并行开发,减少开发和维护成本,在进行某个应用版本的编译操作时,根据当前应用版本去访问相应的文件夹来实现编译,提高分支版本的应用程序安装包的编译效率。
附图说明
图1为本申请实施例提供的一种应用程序安装包的编译方法的流程示意图;
图2为本申请实施例提供的另一种应用程序安装包的编译方法的流程示意图;
图3为本申请实施例提供的一种应用程序安装包的编译装置的结构框图;
图4为本申请实施例提供的一种终端的结构示意图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本申请的技术方案。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
图1为本申请实施例提供的一种应用程序安装包的编译方法的流程示意图,该方法可以由应用程序安装包的编译装置执行,其中该装置可由软件和/或硬件实现,一般可集成在计算机等终端中。如图1所示,该方法包括:
步骤101、确定目标应用程序的当前待编译的目标应用版本,其中,所述目标应用程序包含至少两个应用版本,也即存在至少两个分支版本。
示例性的,本申请实施例中的终端中可配置有应用程序编译器等用于进行应用程序编译的装置。
随着智能终端越来越多样化,同一个应用程序可能需要针对智能终端的差异而进行有针对性的设计,如针对不同用途或类型(如开发模式以及生产模式)、不同品牌(如一个智能终端厂商设置的自主品牌及旗下品牌等)以及不同使用区域(如国内和海外)等生成不同版本的应用程序安装包。这类应用程序的特点是,不同版本的应用程序之间大部分功能是相同的,但是存在部分差异化需求。相关技术中,通常需要基于同一套基线代码,来生成存在部分差异的应用程序安装包,一般是从开发出来的最新的基线上拉取代码分支来支持不同应用版本的发布,还需要针对当前应用版本做应用适配,这样就需要同时维护不同的分支代码,从而额外增加开发和维护成本,影响开发进度。
本申请实施例中,可以将用于编译不同应用版本的待编译资源进行分类存储,包括公共部分和每个版本的私有部分,方便开发人员进行待编译资源的并行开发,减少开发和维护成本。
本申请实施例中,目标应用程序可理解为需要进行编译的应用程序,对目标应用程序的类型以及名称等不做限定。目标应用程序可以是智能终端的内置应用程序或系统应用程序,如浏览器应用程序;还可以是针对智能终端设计的第三方应用程序,如微信等社交类应用程序。目标应用程序包含至少两个应用版本,目标应用版本可理解为当前需要进行编译的应用版本。在本步骤中,先确定目标应用版本,然后再进行后续操作。
可选的,本申请实施例中,用于区分应用版本的维度包括应用模式、智能终端品牌和使用区域中的至少一种,其中,所述应用模式包括开发模式和生产模式,所述使用区域包括国内和海外。
可选的,负责编译工作的开发人员可以向终端中输入代表目标应用程序和目标应用版本的相关信息,终端根据该相关信息确定目标应用程序的当前待编译的目标应用版本。
示例性的,本步骤可包括:接收针对目标应用程序的预设格式的编译指令;从所述编译指令中提取用于表示应用版本的维度信息;根据所提取的维度信息确定目标应用版本。这样设置的好处在于,能够更加快速准确地确定目标应用版本,并发起编译流程。例如,编译指令可以是gradle assembleProdOppoHvDebug指令,其中,用于区分应用版本的维度包括应用模式、智能终端品牌和使用区域,应用模式(type)为生产模式(prod),品牌(brand)为oppo,区域(area)为国内(Hv),这样根据该编译指令就可以编译出type为prod,brand为oppo,area为Hv的debug包,也即目标应用版本为生产模式下oppo品牌的内销版本。
步骤102、确定所述目标应用程序对应的待编译资源中,与所述目标应用版本对应的目标依赖文件夹。
其中,所述待编译资源中包含所述目标应用程序对应的主文件夹和至少两个依赖文件夹,所述主文件夹中包含所有应用版本对应的公共资源和公共代码,所述至少两个依赖文件夹中的每个依赖文件夹分别对应一个应用版本,包含所对应的应用版本的私有资源和私有代码。
示例性的,公共资源可以理解为目标应用程序的每个应用版本在进行编译过程中均需要使用到的资源,对应着每个应用版本均具备的公共功能,所述资源例如可包括图片、可扩展标记语言(Extensible Markup Language,XML)文件、布局以及文字等。公共代码可理解为目标应用程序的每个应用版本在进行编译过程中均需要使用到的代码,同样对应着每个应用版本均具备的公共功能。私有资源可以理解为目标应用版本特有的,在其他应用版本的编译过程中不需要使用的资源,对应着目标应用版本独有的个性化功能。私有资源可以理解为目标应用版本特有的,在其他应用版本的编译过程中不需要使用的代码,同样对应着目标应用版本独有的个性化功能。
示例性的,主文件夹和至少两个依赖文件夹中的资源和代码可以由开发人员预先开发,如包括资源配置、资源导入或代码编写等,对于至少两个依赖文件夹的开发,开发人员可以并行进行,且只需关注自己负责的部分,减少熟悉项目成本,便于维护,提高开发效率。
步骤103、通过访问所述主文件夹和所述目标依赖文件夹来进行针对所述目标应用版本的编译操作。
本申请实施例中,在进行编译操作的过程中,可利用主文件夹和目标依赖文件夹中包含的公共资源、公共代码、私有资源和私有代码实现编译,对编译操作的具体过程不做限定,可根据应用程序所对应的操作系统的相关规定进行编译操作。
本申请实施例中提供的应用程序安装包的编译方法,确定目标应用程序的当前待编译的目标应用版本,其中,目标应用程序包含至少两个应用版本,确定目标应用程序对应的待编译资源中对应的目标依赖文件夹,其中,待编译资源中包含目标应用程序对应的主文件夹和至少两个依赖文件夹,主文件夹中包含所有应用版本对应的公共资源和公共代码,每个依赖文件夹分别对应一个应用版本,包含所对应的应用版本的私有资源和私有代码,通过访问主文件夹和目标依赖文件夹来进行针对目标应用版本的编译操作。通过采用上述技术方案,可以将用于编译目标应用程序不同版本的待编译资源进行分类存储,包括公共部分和每个版本的私有部分,方便开发人员进行待编译资源的并行开发,减少开发和维护成本,在进行某个应用版本的编译操作时,根据当前应用版本去访问相应的文件夹来实现编译,提高分支版本的应用程序安装包的编译效率。
在一些实施例中,目标应用程序所对应的操作系统可以是安卓(Android)操作系统,所生成的目标应用版本的安装包格式为APK(AndroidPackage)。所述依赖文件夹的目录与所述主文件夹的目录一致;所述目录包括java子文件夹和res子文件夹;所述依赖文件夹中java子文件夹中的文件名称与所述主文件夹中java子文件夹中的文件名称不能相同;所述依赖文件夹中res子文件夹中的文件名称与所述主文件夹中res子文件夹中的文件名称允许相同。这样设置的好处在于,可以保证各应用版本保持相同的主包名,并满足安卓应用程序打包流程的相关规定,保证编译过程的稳定性以及成功率。
在一些实施例中,通过访问所述宿主工程文件夹和所述目标依赖文件夹来实现针对所述目标应用版本的编译操作,包括:通过访问所述主文件夹来获取其中包含的公共资源和公共代码;通过访问所述目标依赖文件夹来获取其中包含的私有资源和私有代码;依据所获取到的公共资源、公共代码、私有资源和私有代码来进行针对所述目标应用版本的编译操作;其中,公共代码中包含预设接口和/或预设抽象类,在编译操作过程中,通过私有代码调用所述预设接口和/或所述预设抽象类来实现公共代码对应的公共功能和私有代码对应的私有功能的合并;当所述目标依赖文件夹中的第一res子文件夹中,存在与所述主文件夹中的第二res子文件夹中文件名相同的文件时,在编译操作过程中,采用所述第一res子文件夹中的文件覆盖所述第二res子文件夹中对应的文件名相同的文件。这样设置的好处在于,可以在编译过程中合理地对公共资源、私有资源、公共代码以及私有代码进行整合,以便于实现目标应用版本所需要具备的所有功能。
在一些实施例中,在编译操作过程中,获取所述主文件夹中的第一清单文件和所述目标依赖文件夹中的第二清单文件;将所述第一清单文件和所述第二清单文件中,对应同一组件的属性信息进行合并。这样设置的好处在于,可以在编译过程中合理地对清淡文件中各组件的属性信息进行整合,以便于实现目标应用版本所需要具备的所有功能。其中,所述组件包括Android操作系统中的四大组件,活动(Activity)、服务(Service)、广播接收器(BroadcastReceiver)和内容提供者(ContentProvider)。
在一些实施例中,所述待编译资源还包括宿主工程文件夹;所述确定所述目标应用程序对应的待编译资源中,与所述目标应用版本对应的目标依赖文件夹,包括:根据所确定的目标应用版本获取所述宿主工程文件夹中对应的目标配置文件;根据所述目标配置文件确定所述目标应用程序对应的待编译资源中,与所述目标应用版本对应的目标依赖文件夹。这样设置的好处在于,将整个项目工程抽离成一个宿主工程和多个依赖,可以利用宿主工程中的配置文件实现对依赖的调用,便于应用程序的集成和调试发布。可选的,在所述宿主工程文件夹中包含预先定义的用于区分应用版本的维度以及每个维度包含的内容,以便于确定应用版本对应的维度内容与配置文件之间的对应关系。可选的,待编译资源还包括主依赖文件夹,所述主文件夹和所述至少两个依赖文件夹包含于所述主依赖文件夹中,便于对目标应用程序对应的主文件夹和至少两个依赖文件夹进行管理。
图2为本申请实施例提供的另一种应用程序安装包的编译方法的流程示意图,该方法包括如下步骤:
步骤201、接收针对目标应用程序的预设格式的编译指令。
示例性的,本申请实施例中以安卓操作系统为例进行说明,利用Gradle实现应用程序安装包的编译。用于区分应用版本的维度包括应用模式、智能终端品牌和使用区域,其中,应用模式包括开发模式和生产模式,所述使用区域包括国内和海外。
本申请实施例中,目标应用程序的待编译资源中可包括宿主工程文件夹和主依赖文件夹,主依赖文件夹中包含主文件夹和多个依赖文件夹。宿主工程可以动态加载主依赖文件夹中的资源,还可以动态加载其他依赖代码库,如alibrary,blibrary等。可以预先在宿主工程的build.gradle中设置不同维度,如flavorDimensions“type”,“brand”,“area”,分别对应于类型(应用模式)、品牌和区域。然后定义属于每一个维度的内容,如利用Gradle中的productFlavors来实现。一般的,开发模式和生产模式的安装包中实现的功能需求相同,所以在主依赖中的build.gradle中可以仅实现品牌和区域两个特点维度。主依赖文件夹中的主文件夹(main)可以包含所有品牌和区域的应用版本对应的公共资源和公共代码。品牌和区域的每种组合对应一个依赖文件夹。可选的,定义特征维度时可以第一个维度为准,例如“brand”和“area”两个特征配置了常量,代表当前的维度信息,若“brand”在“area”之前,则编译之后就是先品牌后区域的方式。在编译后,在生成的BuildConfig文件中,可以看到是以第一个“brand”为准,然后才是“area”。相应的,依赖文件夹也以该格式进行文件夹名称的定义,例如,品牌包括A、B和C,区域包括国内(hv)和国外(ov),那么多个依赖文件夹分别为Ahv、Aov、Bhv、Bov、Chv和Cov。每个依赖文件夹中包含所对应的应用版本的私有资源和私有代码。
本申请实施例中,依赖文件夹的目录与主文件夹的目录一致。目录包括java子文件夹和res子文件夹。依赖文件夹中java子文件夹中的文件名称与主文件夹中java子文件夹中的文件名称不能相同;依赖文件夹中res子文件夹中的文件名称与主文件夹中res子文件夹中的文件名称允许相同。例如,依赖文件夹oppohv和主文件夹main,需要保持相同的包名,oppohv中不能存在与main中命名重复的类,但不同的依赖文件夹(如oppohv和oppoov)中的类名和包名可以相同,而oppohv中的res子文件夹下的图片、布局以及文字等,可以与main中的相同,在后续的编译操作中,会直接覆盖相同文件名的文件和资源。
本申请实施例中,可以预先定义目标应用程序的预设格式的编译指令,目标应用程序例如可以是智能终端内置的浏览器应用。例如,编译指令可以是gradleassembletypebrandareaDebug指令,其中,type,brand和area为可替换部分,在需要对目标应用版本进行编译时,可以由负责编译工作的开发人员可以向终端中输入可替换部分的具体值,如prod、oppo和hv,进而生成终端能够识别的编译指令。
步骤202、从编译指令中提取用于表示应用版本的维度信息。
示例性的,终端可以从编译指令中的指定位置识别出用于表示应用版本的维度信息,如上文举例的prod、oppo和hv。
步骤203、根据所提取的维度信息确定当前待编译的目标应用版本。
示例性的,根据提取的维度信息确定当前待编译的目标应用版本,如根据上文举例的prod、oppo和hv,确定目标应用版本为生产模式oppo品牌的国内版本。
步骤204、根据所确定的目标应用版本获取宿主工程文件夹中对应的目标配置文件。
示例性的,可以预先建立不同应用版本和配置文件的对应关系,在编译时,根据目标应用版本查询该对应关系,进而确定需要调用的配置文件。
步骤205、根据目标配置文件确定目标应用程序对应的待编译资源中,与目标应用版本对应的目标依赖文件夹。
一般的,应用程序安装包的编译打包流程可主要包括:1、aapt编译res目录,aidl编译aidl文件为Java文件;2、Javac编译Java文件为.class文件;3、dx打包.class文件为.dex文件;4、ApkBuilder类打包为apk文件;5、apksigner对apk签名;6、zipalign优化安装包。本申请实施例中,在编译class文件之前就会去确定去哪个文件夹中读取对应的代码和资源去执行,从而达到区分品牌和区域的功能,也就是本步骤中的确定目标依赖文件夹。
步骤206、通过访问主文件夹来获取其中包含的公共资源和公共代码。
步骤207、通过访问目标依赖文件夹来获取其中包含的私有资源和私有代码。
步骤208、依据所获取到的公共资源、公共代码、私有资源和私有代码来进行针对所述目标应用版本的编译操作。
在上文中提到的编译打包流程的第1步中,使用文件aapt打包主文件夹中的公共资源和目标依赖文件夹中的私有资源,也即对主文件夹中res目录下的资源文件和目标依赖文件夹中res目录下的资源文件进行打包,生成R.java、resources.arsc和res目录。当目标依赖文件夹中的第一res子文件夹中,存在与主文件夹中的第二res子文件夹中文件名相同的文件时,在编译操作过程中,采用第一res子文件夹中的文件覆盖第二res子文件夹中对应的文件名相同的文件,实现目标应用版本的资源个性化。
在上文中提到的编译打包流程的第2步中,使用JDK里的javac编译R.java、aidl生成的Java文件、Java源代码文件,并生成.class文件。这里的Java源代码文件包括主文件夹中的公共代码和目标依赖文件夹中的私有代码。其中,公共代码中包含预设接口或预设抽象类,在编译操作过程中,通过私有代码调用预设接口或预设抽象类来实现公共代码对应的公共功能和私有代码对应的私有功能的合并。
另外,在编译操作过程中,还包括编译资源(CompiledResource)过程,该过程中,如果作为目标应用版本的分支对某个元素节点进行复写,则会将分支和main中的对应分支进行属性合并。也就是说,会获取主文件夹中的第一清单文件和目标依赖文件夹中的第二清单文件,将第一清单文件和第二清单文件中对应同一组件的属性信息进行合并。其中,组件包括Android操作系统中的四大组件,Activity、Service、BroadcastReceiver和ContentProvider。
为了便于理解,下面进行举例说明,分享功能在内外销版本(也即国内版本和国外版本)上都是一个常见的功能,国内常见的微信及微博等分享功能会集成在内销版本上,而twitter及facebook等分享功能会出现在外销版本上。可以在mian文件夹中的基础模块中暴露一个抽象类或者接口,如pubic abstract class ShareListener,然后内外销分别去继承类或者实现接口,内销版本去实现微信和微博的功能逻辑,外销版本去实现twitter和facebook的逻辑,两者互不冲突,也就是说,内销版本在编译过程中,通过内销版本对应的依赖文件夹中的私有代码去继承类或者实现接口,从而实现微信和微博的功能逻辑,外销版本在编译过程中,通过外销版本对应的依赖文件夹中的私有代码去继承类或者实现接口,从而实现twitter和facebook的功能逻辑。另外,对于不同的应用版本,可以利用Implementation在编译时分别过滤其他应用版本的依赖库,从而达到减小应用体积的目的。如以内外销版本为例,可以利用如下方式分别过滤内外销版本的依赖库,来减小应用体积,hvImplementation fileTree(include:[’*.jar’],dir:’src/hv/libs’);ovImplementation fileTree(include:[’*.jar’],dir:’src/ov/libs’)。
本申请实施例提供的应用程序安装包的编译方法,将整个项目工程抽离成一个宿主工程和多个依赖,利用宿主工程中的配置文件实现对依赖的调用,在编译时,根据接收到的编译指令确定相应的配置文件,进而确定待编译的目标应用版本,获取主文件夹中的公共资源和公共代码以及目标依赖文件夹中的私有资源和私有代码,通过代码合并、资源覆盖以及清单文件合并等实现目标应用程序的公共功能与目标应用版本的个性化功能的整合,提高开发和编译效率。
图3为本申请实施例提供的一种应用程序安装包的编译装置的结构框图,该装置可由软件和/或硬件实现,一般集成在终端中,可通过执行应用程序安装包的编译方法来进行应用程序安装包的编译操作。如图3所示,该装置包括:
目标版本确定模块301,用于确定目标应用程序的当前待编译的目标应用版本,其中,所述目标应用程序包含至少两个应用版本;
目标依赖文件夹确定模块302,用于确定所述目标应用程序对应的待编译资源中,与所述目标应用版本对应的目标依赖文件夹,其中,所述待编译资源中包含所述目标应用程序对应的主文件夹和至少两个依赖文件夹,所述主文件夹中包含所有应用版本对应的公共资源和公共代码,所述至少两个依赖文件夹中的每个依赖文件夹分别对应一个应用版本,包含所对应的应用版本的私有资源和私有代码;
编译模块303,用于通过访问所述主文件夹和所述目标依赖文件夹来进行针对所述目标应用版本的编译操作。
本申请实施例中提供的应用程序安装包的编译装置,确定目标应用程序的当前待编译的目标应用版本,其中,目标应用程序包含至少两个应用版本,确定目标应用程序对应的待编译资源中对应的目标依赖文件夹,其中,待编译资源中包含目标应用程序对应的主文件夹和至少两个依赖文件夹,主文件夹中包含所有应用版本对应的公共资源和公共代码,每个依赖文件夹分别对应一个应用版本,包含所对应的应用版本的私有资源和私有代码,通过访问主文件夹和目标依赖文件夹来进行针对目标应用版本的编译操作。通过采用上述技术方案,可以将用于编译目标应用程序不同版本的待编译资源进行分类存储,包括公共部分和每个版本的私有部分,方便开发人员进行待编译资源的并行开发,减少开发和维护成本,在进行某个应用版本的编译操作时,根据当前应用版本去访问相应的文件夹来实现编译,提高编译效率。
可选的,所述依赖文件夹的目录与所述主文件夹的目录一致;所述目录包括java子文件夹和res子文件夹;所述依赖文件夹中java子文件夹中的文件名称与所述主文件夹中java子文件夹中的文件名称不能相同;所述依赖文件夹中res子文件夹中的文件名称与所述主文件夹中res子文件夹中的文件名称允许相同。
可选的,通过访问所述主文件夹和所述目标依赖文件夹来进行针对所述目标应用版本的编译操作,包括:
通过访问所述主文件夹来获取其中包含的公共资源和公共代码;
通过访问所述目标依赖文件夹来获取其中包含的私有资源和私有代码;
依据所获取到的公共资源、公共代码、私有资源和私有代码来进行针对所述目标应用版本的编译操作;
其中,公共代码中包含预设接口和/或预设抽象类,在编译操作过程中,通过私有代码调用所述预设接口和/或所述预设抽象类来实现公共代码对应的公共功能和私有代码对应的私有功能的合并;当所述目标依赖文件夹中的第一res子文件夹中,存在与所述主文件夹中的第二res子文件夹中文件名相同的文件时,在编译操作过程中,采用所述第一res子文件夹中的文件覆盖所述第二res子文件夹中对应的文件名相同的文件。
可选的,所述编译模块还用于:在编译操作过程中,获取所述主文件夹中的第一清单文件和所述目标依赖文件夹中的第二清单文件;
将所述第一清单文件和所述第二清单文件中,对应同一组件的属性信息进行合并。
可选的,所述确定目标应用程序的当前待编译的目标应用版本,包括:
接收针对目标应用程序的预设格式的编译指令;
从所述编译指令中提取用于表示应用版本的维度信息;
根据所提取的维度信息确定当前待编译的目标应用版本。
可选的,所述待编译资源还包括宿主工程文件夹;
所述确定所述目标应用程序对应的待编译资源中,与所述目标应用版本对应的目标依赖文件夹,包括:
根据所确定的目标应用版本获取所述宿主工程文件夹中对应的目标配置文件;
根据所述目标配置文件确定所述目标应用程序对应的待编译资源中,与所述目标应用版本对应的目标依赖文件夹。
可选的,用于区分应用版本的维度包括应用模式、智能终端品牌和使用区域中的至少一种,其中,所述应用模式包括开发模式和生产模式,所述使用区域包括国内和海外。
本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行应用程序安装包的编译方法,该方法包括:
确定目标应用程序的当前待编译的目标应用版本,其中,所述目标应用程序包含至少两个应用版本;
确定所述目标应用程序对应的待编译资源中,与所述目标应用版本对应的目标依赖文件夹,其中,所述待编译资源中包含所述目标应用程序对应的主文件夹和至少两个依赖文件夹,所述主文件夹中包含所有应用版本对应的公共资源和公共代码,所述至少两个依赖文件夹中的每个依赖文件夹分别对应一个应用版本,包含所对应的应用版本的私有资源和私有代码;
通过访问所述主文件夹和所述目标依赖文件夹来进行针对所述目标应用版本的编译操作。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDRRAM、SRAM、EDORAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的应用程序安装包的编译操作,还可以执行本申请任意实施例所提供的应用程序安装包的编译方法中的相关操作。
本申请实施例提供了一种终端,该终端中可集成本申请实施例提供的应用程序安装包的编译装置。图4为本申请实施例提供的一种终端的结构示意图。终端400可以包括:存储器401,处理器402及存储在存储器401上并可在处理器运行的计算机程序,所述处理器402执行所述计算机程序时实现如本申请实施例所述的应用程序安装包的编译方法:
确定目标应用程序的当前待编译的目标应用版本,其中,所述目标应用程序包含至少两个应用版本;
确定所述目标应用程序对应的待编译资源中,与所述目标应用版本对应的目标依赖文件夹,其中,所述待编译资源中包含所述目标应用程序对应的主文件夹和至少两个依赖文件夹,所述主文件夹中包含所有应用版本对应的公共资源和公共代码,所述至少两个依赖文件夹中的每个依赖文件夹分别对应一个应用版本,包含所对应的应用版本的私有资源和私有代码;
通过访问所述主文件夹和所述目标依赖文件夹来进行针对所述目标应用版本的编译操作。
本申请实施例提供的终端,可以将用于编译目标应用程序不同版本的待编译资源进行分类存储,包括公共部分和每个版本的私有部分,方便开发人员进行待编译资源的并行开发,减少开发和维护成本,在进行某个应用版本的编译操作时,根据当前应用版本去访问相应的文件夹来实现编译,提高编译效率。
上述实施例中提供的应用程序安装包的编译装置、存储介质及终端可执行本申请任意实施例所提供的应用程序安装包的编译方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的应用程序安装包的编译方法。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。
Claims (10)
1.一种应用程序安装包的编译方法,其特征在于,包括:
确定目标应用程序的当前待编译的目标应用版本,其中,所述目标应用程序包含至少两个应用版本;
确定所述目标应用程序对应的待编译资源中,与所述目标应用版本对应的目标依赖文件夹,其中,所述待编译资源中包含所述目标应用程序对应的主文件夹和至少两个依赖文件夹,所述主文件夹中包含所有应用版本对应的公共资源和公共代码,所述至少两个依赖文件夹中的每个依赖文件夹分别对应一个应用版本,包含所对应的应用版本的私有资源和私有代码;
通过访问所述主文件夹和所述目标依赖文件夹来进行针对所述目标应用版本的编译操作。
2.根据权利要求1所述的方法,其特征在于,所述依赖文件夹的目录与所述主文件夹的目录一致;所述目录包括java子文件夹和res子文件夹;所述依赖文件夹中java子文件夹中的文件名称与所述主文件夹中java子文件夹中的文件名称不能相同;所述依赖文件夹中res子文件夹中的文件名称与所述主文件夹中res子文件夹中的文件名称允许相同。
3.根据权利要求2所述的方法,其特征在于,通过访问所述主文件夹和所述目标依赖文件夹来进行针对所述目标应用版本的编译操作,包括:
通过访问所述主文件夹来获取其中包含的公共资源和公共代码;
通过访问所述目标依赖文件夹来获取其中包含的私有资源和私有代码;
依据所获取到的公共资源、公共代码、私有资源和私有代码来进行针对所述目标应用版本的编译操作;
其中,公共代码中包含预设接口和/或预设抽象类,在编译操作过程中,通过私有代码调用所述预设接口和/或所述预设抽象类来实现公共代码对应的公共功能和私有代码对应的私有功能的合并;当所述目标依赖文件夹中的第一res子文件夹中,存在与所述主文件夹中的第二res子文件夹中文件名相同的文件时,在编译操作过程中,采用所述第一res子文件夹中的文件覆盖所述第二res子文件夹中对应的文件名相同的文件。
4.根据权利要求3所述的方法,其特征在于,
在编译操作过程中,获取所述主文件夹中的第一清单文件和所述目标依赖文件夹中的第二清单文件;
将所述第一清单文件和所述第二清单文件中,对应同一组件的属性信息进行合并。
5.根据权利要求1所述的方法,其特征在于,所述确定目标应用程序的当前待编译的目标应用版本,包括:
接收针对目标应用程序的预设格式的编译指令;
从所述编译指令中提取用于表示应用版本的维度信息;
根据所提取的维度信息确定当前待编译的目标应用版本。
6.根据权利要求1所述的方法,其特征在于,所述待编译资源还包括宿主工程文件夹;
所述确定所述目标应用程序对应的待编译资源中,与所述目标应用版本对应的目标依赖文件夹,包括:
根据所确定的目标应用版本获取所述宿主工程文件夹中对应的目标配置文件;
根据所述目标配置文件确定所述目标应用程序对应的待编译资源中,与所述目标应用版本对应的目标依赖文件夹。
7.根据权利要求1所述的方法,其特征在于,用于区分应用版本的维度包括应用模式、智能终端品牌和使用区域中的至少一种,其中,所述应用模式包括开发模式和生产模式,所述使用区域包括国内和海外。
8.一种应用程序安装包的编译装置,其特征在于,包括:
目标版本确定模块,用于确定目标应用程序的当前待编译的目标应用版本,其中,所述目标应用程序包含至少两个应用版本;
目标依赖文件夹确定模块,用于确定所述目标应用程序对应的待编译资源中,与所述目标应用版本对应的目标依赖文件夹,其中,所述待编译资源中包含所述目标应用程序对应的主文件夹和至少两个依赖文件夹,所述主文件夹中包含所有应用版本对应的公共资源和公共代码,所述至少两个依赖文件夹中的每个依赖文件夹分别对应一个应用版本,包含所对应的应用版本的私有资源和私有代码;
编译模块,用于通过访问所述主文件夹和所述目标依赖文件夹来进行针对所述目标应用版本的编译操作。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的应用程序安装包的编译方法。
10.一种终端,其特征在于,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-7任一所述的应用程序安装包的编译方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910107590.0A CN109857405A (zh) | 2019-02-02 | 2019-02-02 | 应用程序安装包的编译方法、装置、存储介质及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910107590.0A CN109857405A (zh) | 2019-02-02 | 2019-02-02 | 应用程序安装包的编译方法、装置、存储介质及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109857405A true CN109857405A (zh) | 2019-06-07 |
Family
ID=66897573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910107590.0A Pending CN109857405A (zh) | 2019-02-02 | 2019-02-02 | 应用程序安装包的编译方法、装置、存储介质及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109857405A (zh) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110221860A (zh) * | 2019-06-11 | 2019-09-10 | 腾讯科技(深圳)有限公司 | 一种配置文件处理方法、装置、终端及介质 |
CN110333872A (zh) * | 2019-07-09 | 2019-10-15 | 广州虎牙科技有限公司 | 一种应用的处理方法、装置、设备和介质 |
CN110457045A (zh) * | 2019-08-16 | 2019-11-15 | 百度在线网络技术(北京)有限公司 | 组件化合并编译方法、装置、设备和存储介质 |
CN110750245A (zh) * | 2019-10-17 | 2020-02-04 | 杭州涂鸦信息技术有限公司 | 一种应用程序开发方法及系统和设备 |
CN110764905A (zh) * | 2019-09-24 | 2020-02-07 | Oppo广东移动通信有限公司 | 网络模型生成方法、装置、计算机设备以及存储介质 |
CN110989992A (zh) * | 2019-10-30 | 2020-04-10 | 无线生活(北京)信息技术有限公司 | 资源处理方法及装置 |
CN111045682A (zh) * | 2019-12-04 | 2020-04-21 | 北京小米移动软件有限公司 | 一种实现组件异步化处理的方法、装置及介质 |
CN111124420A (zh) * | 2019-12-19 | 2020-05-08 | 北京百度网讯科技有限公司 | 编译方法、装置、电子设备及可读存储介质 |
CN111176663A (zh) * | 2019-12-20 | 2020-05-19 | 北京字节跳动网络技术有限公司 | 应用程序的数据处理方法、装置、设备及存储介质 |
CN111399846A (zh) * | 2020-03-16 | 2020-07-10 | 北京五八信息技术有限公司 | 一种安卓手机应用程序容量监控方法及装置 |
CN111459822A (zh) * | 2020-04-01 | 2020-07-28 | 北京字节跳动网络技术有限公司 | 系统组件数据的提取方法、装置、设备及可读介质 |
CN112000364A (zh) * | 2020-08-20 | 2020-11-27 | 广州市百果园信息技术有限公司 | 应用程序的打包方法、装置、设备及存储介质 |
CN112306546A (zh) * | 2019-08-01 | 2021-02-02 | 北京东土科技股份有限公司 | 一种桌面应用的安装文件的生成方法、装置及存储介质 |
CN112433719A (zh) * | 2020-11-23 | 2021-03-02 | 广州虎牙科技有限公司 | 应用程序的编译方法、装置、电子设备及存储介质 |
CN112631935A (zh) * | 2020-12-30 | 2021-04-09 | 中国农业银行股份有限公司 | 一种基于版本冲突的测试方法和装置 |
CN112860285A (zh) * | 2019-11-12 | 2021-05-28 | 深圳怡化电脑股份有限公司 | 金融自助设备的sp升级包生成方法、装置及计算机设备 |
CN112988177A (zh) * | 2021-04-16 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 应用安装包的发布、应用程序的运行方法、服务器及终端 |
CN113126982A (zh) * | 2021-04-23 | 2021-07-16 | 上海绚显科技有限公司 | 一种应用程序生成、运行方法及装置 |
CN113360156A (zh) * | 2020-03-04 | 2021-09-07 | 武汉斗鱼鱼乐网络科技有限公司 | 一种ios编译方法及相关设备 |
CN113672229A (zh) * | 2020-05-14 | 2021-11-19 | 武汉斗鱼网络科技有限公司 | 一种目录注册方法、装置、设备及存储介质 |
CN113760239A (zh) * | 2020-06-04 | 2021-12-07 | 华为技术有限公司 | 应用程序开发方法、装置、终端设备及可读存储介质 |
CN114942753A (zh) * | 2022-07-26 | 2022-08-26 | 北京智象信息技术有限公司 | 一种基于差量的多项目多语言生成方法、装置、设备以及介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077039A (zh) * | 2013-02-28 | 2013-05-01 | 福州昌晖自动化系统有限公司 | 一种嵌入式工控仪表软件开发平台 |
CN104317573A (zh) * | 2014-10-03 | 2015-01-28 | 李宏伟 | 安卓安装包转换方法和装置以及运行应用的方法和装置 |
CN106648788A (zh) * | 2016-12-28 | 2017-05-10 | 东软集团股份有限公司 | 应用程序的安装方法及装置 |
CN106775730A (zh) * | 2016-12-21 | 2017-05-31 | 深圳Tcl数字技术有限公司 | 程序发布方法及系统 |
CN107239298A (zh) * | 2017-04-28 | 2017-10-10 | 北京五八信息技术有限公司 | 应用程序调试方法及装置 |
CN107844301A (zh) * | 2017-12-12 | 2018-03-27 | 苏州蜗牛数字科技股份有限公司 | 一种安卓应用渠道合包方法及装置 |
CN107908403A (zh) * | 2017-11-10 | 2018-04-13 | 北京搜狐新动力信息技术有限公司 | 一种移动端业务模块组件化的配置方法及系统 |
CN108829378A (zh) * | 2018-05-24 | 2018-11-16 | 北京顺丰同城科技有限公司 | 一种应用软件的开发方法、装置及电子设备 |
CN108984161A (zh) * | 2018-06-21 | 2018-12-11 | 广州视源电子科技股份有限公司 | 一种统一且可分类拓展的软件安装包构建方法和装置 |
-
2019
- 2019-02-02 CN CN201910107590.0A patent/CN109857405A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077039A (zh) * | 2013-02-28 | 2013-05-01 | 福州昌晖自动化系统有限公司 | 一种嵌入式工控仪表软件开发平台 |
CN104317573A (zh) * | 2014-10-03 | 2015-01-28 | 李宏伟 | 安卓安装包转换方法和装置以及运行应用的方法和装置 |
CN106775730A (zh) * | 2016-12-21 | 2017-05-31 | 深圳Tcl数字技术有限公司 | 程序发布方法及系统 |
CN106648788A (zh) * | 2016-12-28 | 2017-05-10 | 东软集团股份有限公司 | 应用程序的安装方法及装置 |
CN107239298A (zh) * | 2017-04-28 | 2017-10-10 | 北京五八信息技术有限公司 | 应用程序调试方法及装置 |
CN107908403A (zh) * | 2017-11-10 | 2018-04-13 | 北京搜狐新动力信息技术有限公司 | 一种移动端业务模块组件化的配置方法及系统 |
CN107844301A (zh) * | 2017-12-12 | 2018-03-27 | 苏州蜗牛数字科技股份有限公司 | 一种安卓应用渠道合包方法及装置 |
CN108829378A (zh) * | 2018-05-24 | 2018-11-16 | 北京顺丰同城科技有限公司 | 一种应用软件的开发方法、装置及电子设备 |
CN108984161A (zh) * | 2018-06-21 | 2018-12-11 | 广州视源电子科技股份有限公司 | 一种统一且可分类拓展的软件安装包构建方法和装置 |
Non-Patent Citations (4)
Title |
---|
BUGTAGS: "《https://www.ituring.com.cn/article/details/216119》", 6 June 2016 * |
ZLY394: "《https://www.jianshu.com/p/98ee75dd49f4/》", 23 June 2016 * |
腾讯云开发者社区: "《https://cloud.tencent.com/developer/article/1357988》", 24 October 2018 * |
阳光玻璃杯: "详细配置android studio中的gradle", 《HTTPS://BLOG.CSDN.NET/U011913612/ARTICLE/DETAILS/51744302》 * |
Cited By (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110221860A (zh) * | 2019-06-11 | 2019-09-10 | 腾讯科技(深圳)有限公司 | 一种配置文件处理方法、装置、终端及介质 |
CN110333872A (zh) * | 2019-07-09 | 2019-10-15 | 广州虎牙科技有限公司 | 一种应用的处理方法、装置、设备和介质 |
CN110333872B (zh) * | 2019-07-09 | 2023-06-16 | 广州虎牙科技有限公司 | 一种应用的处理方法、装置、设备和介质 |
CN112306546A (zh) * | 2019-08-01 | 2021-02-02 | 北京东土科技股份有限公司 | 一种桌面应用的安装文件的生成方法、装置及存储介质 |
CN110457045A (zh) * | 2019-08-16 | 2019-11-15 | 百度在线网络技术(北京)有限公司 | 组件化合并编译方法、装置、设备和存储介质 |
CN110457045B (zh) * | 2019-08-16 | 2023-05-16 | 百度在线网络技术(北京)有限公司 | 组件化合并编译方法、装置、设备和存储介质 |
CN110764905A (zh) * | 2019-09-24 | 2020-02-07 | Oppo广东移动通信有限公司 | 网络模型生成方法、装置、计算机设备以及存储介质 |
CN110750245A (zh) * | 2019-10-17 | 2020-02-04 | 杭州涂鸦信息技术有限公司 | 一种应用程序开发方法及系统和设备 |
CN110989992A (zh) * | 2019-10-30 | 2020-04-10 | 无线生活(北京)信息技术有限公司 | 资源处理方法及装置 |
CN110989992B (zh) * | 2019-10-30 | 2023-10-31 | 无线生活(北京)信息技术有限公司 | 资源处理方法及装置 |
CN112860285B (zh) * | 2019-11-12 | 2024-05-10 | 深圳怡化电脑股份有限公司 | 金融自助设备的sp升级包生成方法、装置及计算机设备 |
CN112860285A (zh) * | 2019-11-12 | 2021-05-28 | 深圳怡化电脑股份有限公司 | 金融自助设备的sp升级包生成方法、装置及计算机设备 |
CN111045682A (zh) * | 2019-12-04 | 2020-04-21 | 北京小米移动软件有限公司 | 一种实现组件异步化处理的方法、装置及介质 |
CN111124420A (zh) * | 2019-12-19 | 2020-05-08 | 北京百度网讯科技有限公司 | 编译方法、装置、电子设备及可读存储介质 |
CN111124420B (zh) * | 2019-12-19 | 2023-06-20 | 北京百度网讯科技有限公司 | 编译方法、装置、电子设备及可读存储介质 |
CN111176663A (zh) * | 2019-12-20 | 2020-05-19 | 北京字节跳动网络技术有限公司 | 应用程序的数据处理方法、装置、设备及存储介质 |
CN111176663B (zh) * | 2019-12-20 | 2024-02-02 | 抖音视界有限公司 | 应用程序的数据处理方法、装置、设备及存储介质 |
CN113360156B (zh) * | 2020-03-04 | 2023-11-14 | 武汉斗鱼鱼乐网络科技有限公司 | 一种ios编译方法及相关设备 |
CN113360156A (zh) * | 2020-03-04 | 2021-09-07 | 武汉斗鱼鱼乐网络科技有限公司 | 一种ios编译方法及相关设备 |
CN111399846A (zh) * | 2020-03-16 | 2020-07-10 | 北京五八信息技术有限公司 | 一种安卓手机应用程序容量监控方法及装置 |
CN111399846B (zh) * | 2020-03-16 | 2023-03-31 | 北京五八信息技术有限公司 | 一种安卓手机应用程序容量监控方法及装置 |
CN111459822A (zh) * | 2020-04-01 | 2020-07-28 | 北京字节跳动网络技术有限公司 | 系统组件数据的提取方法、装置、设备及可读介质 |
CN111459822B (zh) * | 2020-04-01 | 2023-10-03 | 抖音视界有限公司 | 系统组件数据的提取方法、装置、设备及可读介质 |
CN113672229A (zh) * | 2020-05-14 | 2021-11-19 | 武汉斗鱼网络科技有限公司 | 一种目录注册方法、装置、设备及存储介质 |
CN113760239A (zh) * | 2020-06-04 | 2021-12-07 | 华为技术有限公司 | 应用程序开发方法、装置、终端设备及可读存储介质 |
CN112000364B (zh) * | 2020-08-20 | 2024-05-28 | 广州市百果园信息技术有限公司 | 应用程序的打包方法、装置、设备及存储介质 |
CN112000364A (zh) * | 2020-08-20 | 2020-11-27 | 广州市百果园信息技术有限公司 | 应用程序的打包方法、装置、设备及存储介质 |
CN112433719B (zh) * | 2020-11-23 | 2023-09-01 | 广州虎牙科技有限公司 | 应用程序的编译方法、装置、电子设备及存储介质 |
CN112433719A (zh) * | 2020-11-23 | 2021-03-02 | 广州虎牙科技有限公司 | 应用程序的编译方法、装置、电子设备及存储介质 |
CN112631935A (zh) * | 2020-12-30 | 2021-04-09 | 中国农业银行股份有限公司 | 一种基于版本冲突的测试方法和装置 |
CN112988177B (zh) * | 2021-04-16 | 2023-08-01 | 腾讯科技(深圳)有限公司 | 应用安装包的发布、应用程序的运行方法、服务器及终端 |
CN112988177A (zh) * | 2021-04-16 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 应用安装包的发布、应用程序的运行方法、服务器及终端 |
CN113126982B (zh) * | 2021-04-23 | 2024-01-19 | 上海绚显科技有限公司 | 一种应用程序生成、运行方法及装置 |
CN113126982A (zh) * | 2021-04-23 | 2021-07-16 | 上海绚显科技有限公司 | 一种应用程序生成、运行方法及装置 |
CN114942753B (zh) * | 2022-07-26 | 2022-11-18 | 北京智象信息技术有限公司 | 一种基于差量的多项目多语言生成方法、装置、设备以及介质 |
CN114942753A (zh) * | 2022-07-26 | 2022-08-26 | 北京智象信息技术有限公司 | 一种基于差量的多项目多语言生成方法、装置、设备以及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109857405A (zh) | 应用程序安装包的编译方法、装置、存储介质及终端 | |
US10324690B2 (en) | Automated enterprise software development | |
CN109002362B (zh) | 一种服务方法、装置、系统以及电子设备 | |
US8997070B2 (en) | Extension mechanism for scripting language compiler | |
US8656354B2 (en) | Compound versioning and identification scheme for composite application development | |
CN106339237B (zh) | 针对JavaEE领域WEB应用的插件加载框架及方法 | |
WO2007141068A1 (en) | A method for providing access to data stored in a database to an application | |
US20120158931A1 (en) | Method and Apparatus for the Execution of Adaptable Composed Computer-Implemented Services with Integrated Policies | |
CN112685020B (zh) | 动态创建服务接口的方法、装置、电子设备及存储介质 | |
CN111782300A (zh) | 一种数据处理方法、装置、设备及系统 | |
Kamburjan et al. | Behavioral contracts for cooperative scheduling | |
Rosenmüller et al. | Tailor-made data management for embedded systems: A case study on Berkeley DB | |
CN111045746B (zh) | 代码扩展方法和框架 | |
Reimann et al. | Tool supported OCL refactoring catalogue | |
Hnetynka et al. | Comparing the service component architecture and fractal component model | |
Metzger et al. | Coordinated run-time adaptation of variability-intensive systems: an application in cloud computing | |
Kulesza et al. | Mapping features to aspects: A model-based generative approach | |
JP5377522B2 (ja) | 公称的に互換性のない型を効率的に相関させること | |
Silaghi et al. | Towards an MDA-oriented UML profile for distribution | |
El Hog et al. | A User-Aware Approach to Provide Adaptive Web Services. | |
Rosenberg et al. | Integrated metadata support for web service runtimes | |
CN108804236A (zh) | 一种aidl文件的共享方法及系统 | |
CN112650512A (zh) | 硬件驱动方法及装置、终端、存储介质 | |
Fleming et al. | An approach to implementing dynamic adaptation in c++ | |
Fröhlich et al. | Tailor-made operating systems for embedded parallel applications |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190607 |