CN111625232A - 应用程序安装包的生成方法、装置、可读介质和电子设备 - Google Patents

应用程序安装包的生成方法、装置、可读介质和电子设备 Download PDF

Info

Publication number
CN111625232A
CN111625232A CN202010478302.5A CN202010478302A CN111625232A CN 111625232 A CN111625232 A CN 111625232A CN 202010478302 A CN202010478302 A CN 202010478302A CN 111625232 A CN111625232 A CN 111625232A
Authority
CN
China
Prior art keywords
class
original
file
library
target
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
Application number
CN202010478302.5A
Other languages
English (en)
Other versions
CN111625232B (zh
Inventor
答奇
孙克静
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202010478302.5A priority Critical patent/CN111625232B/zh
Publication of CN111625232A publication Critical patent/CN111625232A/zh
Application granted granted Critical
Publication of CN111625232B publication Critical patent/CN111625232B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本公开涉及一种应用程序安装包的生成方法、装置、可读介质和电子设备,包括:获取原始渠道SDK中的原始类文件,原始类文件包括原始渠道SDK中的类,原始渠道SDK为应用程序待发布渠道所提供的SDK,根据原始类文件,生成第一类文件和第二类文件,第一类文件包括基础类,第二类文件包括原始渠道SDK中除基础类之外其他的类,基础类为原始渠道SDK中与指定基础库重复的类,根据第一类文件生成目标基础库,目标基础库的版本号大于指定基础库的版本号,根据第二类文件生成目标渠道SDK,根据目标渠道SDK和目标基础库,生成应用程序的安装包。本公开能够自动生成可以通过发布渠道审核的安装包,提高了开发效率。

Description

应用程序安装包的生成方法、装置、可读介质和电子设备
技术领域
本公开涉及电子信息技术领域,具体地,涉及一种应用程序安装包的生成方法、装置、可读介质和电子设备。
背景技术
随着电子信息技术的不断发展,应用市场上出现了各种各样的应用程序(英文:Application,缩写:APP),以满足用户多样化的需求。应用程序在发布时,通常会通过现有的发布渠道来进行发布,以使用户能够通过发布渠道下载应用程序的安装包。应用程序的安装包要上架发布渠道,需要与发布渠道的渠道SDK(英文:Software Development Kit,中文:软件开发工具包)进行对接,即应用程序的安装包中需要包含发布渠道的渠道SDK。
然而,应用程序要正常运行,还会依赖于其他的库,而这些库中所包含的类,可能与渠道SDK中所包含的类存在重复,从而导致类重复的问题。若直接修改渠道SDK中所包含的类,会导致安装包无法通过发布渠道的审核。若修改其他的库中所包含的类,则需要开发人员手动将其他库中存在重复的类进行剔除,工作量大,准确度低,降低了开发效率。
发明内容
提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
第一方面,本公开提供一种应用程序安装包的生成方法,所述方法包括:
获取原始渠道SDK中的原始类文件,所述原始类文件包括所述原始渠道SDK中的类,所述原始渠道SDK为应用程序待发布渠道所提供的SDK;
根据所述原始类文件,生成第一类文件和第二类文件,所述第一类文件包括基础类,所述第二类文件包括所述原始渠道SDK中除所述基础类之外其他的类,所述基础类为所述原始渠道SDK中与指定基础库重复的类;
根据所述第一类文件生成目标基础库,所述目标基础库的版本号大于所述指定基础库的版本号;
根据所述第二类文件生成目标渠道SDK;
根据所述目标渠道SDK和所述目标基础库,生成所述应用程序的安装包。
第二方面,本公开提供一种应用程序安装包的生成装置,所述装置包括:
获取模块,用于获取原始渠道SDK中的原始类文件,所述原始类文件包括所述原始渠道SDK中的类,所述原始渠道SDK为应用程序待发布渠道所提供的SDK;
第一生成模块,用于根据所述原始类文件,生成第一类文件和第二类文件,所述第一类文件包括基础类,所述第二类文件包括所述原始渠道SDK中除所述基础类之外其他的类,所述基础类为所述原始渠道SDK中与指定基础库重复的类;
所述第一生成模块,还用于根据所述第一类文件生成目标基础库,所述目标基础库的版本号大于所述指定基础库的版本号;
所述第一生成模块,还用于根据所述第二类文件生成目标渠道SDK;
第二生成模块,用于根据所述目标渠道SDK和所述目标基础库,生成所述应用程序的安装包。
第三方面,本公开提供一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现本公开第一方面所述方法的步骤。
第四方面,本公开提供一种电子设备,包括:
存储装置,其上存储有计算机程序;
处理装置,用于执行所述存储装置中的所述计算机程序,以实现本公开第一方面所述方法的步骤。
通过上述技术方案,本公开首先获取待发布渠道所提供的原始渠道SDK中的原始类文件,其中,原始类文件包括了原始渠道SDK中的类,然后根据原始类文件,生成包括了基础类的第一类文件,和包括了原始渠道SDK中除基础类之外其他的类的第二类文件,基础类为原始渠道SDK中与指定基础库重复的类。再根据第一类文件生成版本号大于指定基础库的版本号的目标基础库,同时根据第二类文件生成目标渠道SDK,最后根据目标渠道SDK和目标基础库,生成应用程序的安装包。本公开将原始渠道SDK中与指定基础库重复的基础类,封装为目标基础库,同时将原始类文件中的基础类删除,以将原始渠道SDK重新封装为目标渠道SDK,从而根据目标基础库和目标渠道SDK生成安装包,无需手动剔除重复的类,就能够自动生成可以通过发布渠道审核的安装包,提高了开发效率。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。在附图中:
图1是根据一示例性实施例示出的一种应用程序安装包的生成方法的流程图;
图2是根据一示例性实施例示出的另一种应用程序安装包的生成方法的流程图;
图3是根据一示例性实施例示出的另一种应用程序安装包的生成方法的流程图;
图4是根据一示例性实施例示出的另一种应用程序安装包的生成方法的流程图;
图5是根据一示例性实施例示出的另一种应用程序安装包的生成方法的流程图;
图6是根据一示例性实施例示出的一种应用程序安装包的生成装置的框图;
图7是根据一示例性实施例示出的另一种应用程序安装包的生成装置的框图;
图8是根据一示例性实施例示出的另一种应用程序安装包的生成装置的框图;
图9是根据一示例性实施例示出的另一种应用程序安装包的生成装置的框图;
图10是根据一示例性实施例示出的电子设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
在介绍本公开提供的应用程序安装包的生成方法、装置、可读介质和电子设备之前,首先对本公开各个实施例所涉及的应用场景进行介绍。该应用场景可以是应用程序的开发过程,应用程序要在指定的发布渠道进行发布,需要对接该发布渠道的原始渠道SDK,即应用程序也需要依赖原始渠道SDK。同时应用程序要实现具体的功能,通常还会依赖许多其他开源的库,即后文所述的功能库,也可以理解为应用程序使用的,除目标渠道SDK之外的库。原始渠道SDK中包括的类,可能与功能库中包括的类存在重复,导致类重复的问题,使得应用程序无法正常编译。需要说明的是,功能库中可能包括多种基础库,原始渠道SDK中也可能包括多种基础库,因此其功能库中可能包括与原始渠道SDK重复的基础库,也可能不包括与原始渠道SDK重复的基础库。即功能库与原始渠道SDK之间,可能存在类重复的问题,也可能不存在类重复的问题,本公开对此不作具体限定。
例如:应用程序要使用http请求,可能会依赖retrofit库,retrofit库又依赖于okhttp3这样的基础库。然而原始渠道SDK中通常也会依赖于okhttp3库,那么原始渠道SDK中包括的,属于okhttp3库的类,就会与retrofit库中包括的,属于okhttp3库的类存在重复。在出现类重复的问题时,如果直接将原始渠道SDK中携带的okhttp3库删除,那么会导致应用程序的安装包无法通过发布渠道的审核。如果要修改功能库,那么需要在引入功能库时,通过exclude指令来剔除功能库中的okhttp3库。例如,以功能库为retrofit库为例,那么在引入retrofit库时,需要通过以下指令来对okhttp3库进行剔除,用于指示对retrofit库中的okhttp3库不进行编译:
api('com.squareup.retrofit2:retrofit:2.7.0'){
exclude'group':'com.square.okhttp3'
}
然而,功能库通常不止一个,而且在后期维护、升级的过程中,还可能不断引入新的功能库,那么应用程序在引入每个功能库时,都需要针对类重复的问题,通过exclude指令对存在重复的类进行剔除,工作量大,准确度低,严重影响了开发效率。本公开通过将原始渠道SDK中与指定基础库重复的基础类,封装为目标基础库,同时将原始类文件中的基础类删除,以将原始渠道SDK重新封装为目标渠道SDK,从而根据目标基础库和目标渠道SDK生成安装包,无需手动剔除重复的类,就能够自动生成可以通过发布渠道审核的安装包,能够减少开发人员的工作量,提高开发效率。
图1是根据一示例性实施例示出的一种应用程序安装包的生成方法的流程图,如图1所示,该方法包括:
步骤101,获取原始渠道SDK中的原始类文件,原始类文件包括原始渠道SDK中的类,原始渠道SDK为应用程序待发布渠道所提供的SDK。
举例来说,可以先获取发布渠道所提供的原始渠道SDK。原始渠道SDK可以是.aar文件,也可以.jar文件,还可以是其他格式的文件,本公开对此不作具体限定。获取原始渠道SDK后,可以从原始渠道SDK中获取包括了原始渠道SDK中所使用到的类的原始类文件。例如,以原始渠道SDK为.aar文件为例,那么可以对原始渠道SDK进行解压,解压得到原始渠道SDK的文件代码、资源文件等,其中的classes.jar为原始类文件,包含了原始渠道SDK中所使用到的类。再比如,原始渠道SDK为.jar文件,那么原始渠道SDK即为原始类文件,即原始渠道SDK中直接包括了所要使用到的类。
步骤102,根据原始类文件,生成第一类文件和第二类文件,第一类文件包括基础类,第二类文件包括原始渠道SDK中除基础类之外其他的类,基础类为原始渠道SDK中与指定基础库重复的类。
示例的,在获得原始类文件之后,可以对原始类文件中包含的类(即原始渠道SDK中的类)进行划分,将其中与指定基础库重复的类放入第一类文件,将不与指定基础库重复的类放入第二类文件。其中,指定基础库可以是一个,也可以是多个。指定基础库可以是开发人员预先指定的,可能同时被功能库和原始渠道SDK依赖的基础库,也可以借助检查工具或者对比工具,对功能库和原始渠道SDK中重复的类进行排查,从而确定的基础库。基础库可以理解为开源数据库或者开源平台中的任一种库,开发人员可以随时从开源数据库或者开源平台中获取到基础库。具体的,可以将原始类文件中包含的类依次与指定基础库进行比较,从而确定原始渠道SDK中与指定基础库重复的基础类。之后将基础类放入第一类文件中,并将原始渠道SDK中不与指定基础库重复的类放入第二类文件中。其中,第二类文件可以是新建的一个文件,也可以是在原始类文件的基础上,删除与指定基础库重复的类之后的原始类文件。
步骤103,根据第一类文件生成目标基础库,目标基础库的版本号大于指定基础库的版本号。
步骤104,根据第二类文件生成目标渠道SDK。
示例的,在获得第一类文件和第二类文件之后,可以根据第一类文件生成一个版本号大于指定基础库的版本号的目标基础库,目标基础库中包含了原始渠道SDK中与指定基础库重复的基础类,并且,目标基础库的版本号大于指定基础库的版本号。其中,指定基础库的版本号,可以理解为开源数据库或者开源平台中,指定基础库最新的版本号,可以将目标基础库的版本号设置为一个很大的值(例如99.0.0),以保证目标基础库的版本号能够大于指定基础库的版本号。同时,根据第二类文件生成目标渠道SDK。目标渠道SDK可以理解为对原始渠道SDK的二次封装,目标渠道SDK与原始渠道SDK之间的差别在于,目标渠道SDK中,不包含原始渠道SDK中与指定基础库重复的基础类。
步骤105,根据目标渠道SDK和目标基础库,生成应用程序的安装包。
最后,可以将目标渠道SDK和目标基础库引入应用程序,从而在生成应用程序的安装包时,能够同时集成目标渠道SDK和目标基础库,进一步的,还可以引入应用程序需要使用的,除目标渠道SDK之外的功能库,以使安装包中能够同时集成目标渠道SDK、目标基础库和功能库。功能库可以是一个,也可以是多个。其中,功能库可能依赖于指定基础库,也可能与指定基础库不存在依赖关系,本公开对此不作具体限定。由于目标渠道SDK中,不包含原始渠道SDK中与指定基础库重复的基础类,而目标基础库中包含了原始渠道SDK中与指定基础库重复的基础类,那么同时引入目标渠道SDK和目标基础库,与引入原始渠道SDK等价,对于发布渠道来说,相当于安装包中引入了原始渠道SDK,那么安装包可以通过发布渠道的审核。同时,由于目标基础库的版本号大于指定基础库的版本号,当功能库也依赖指定基础库时,构建工具会选择集成版本号更大(即版本更新)的目标基础库,因此不会存在类重复的问题,无需手动剔除重复的类,就能够自动生成安装包,大大提高了开发效率。
综上所述,本公开首先获取待发布渠道所提供的原始渠道SDK中的原始类文件,其中,原始类文件包括了原始渠道SDK中的类,然后根据原始类文件,生成包括了基础类的第一类文件,和包括了原始渠道SDK中除基础类之外其他的类的第二类文件,基础类为原始渠道SDK中与指定基础库重复的类。再根据第一类文件生成版本号大于指定基础库的版本号的目标基础库,同时根据第二类文件生成目标渠道SDK,最后根据目标渠道SDK和目标基础库,生成应用程序的安装包。本公开将原始渠道SDK中与指定基础库重复的基础类,封装为目标基础库,同时将原始类文件中的基础类删除,以将原始渠道SDK重新封装为目标渠道SDK,从而根据目标基础库和目标渠道SDK生成安装包,无需手动剔除重复的类,就能够自动生成可以通过发布渠道审核的安装包,提高了开发效率。
图2是根据一示例性实施例示出的另一种应用程序安装包的生成方法的流程图,如图2所示,步骤101的实现方式可以包括:
步骤1011,对原始渠道SDK进行解压,以得到原始渠道SDK对应的资源目录。
步骤1012,从资源目录中获取原始类文件。
在具体的应用场景中,要获取原始类文件,可以先对原始渠道SDK进行解压,以得到原始渠道SDK对应的资源目录,之后再从资源目录中查找原始类文件。以原始渠道SDK为.aar文件为例,对原始渠道SDK进行解压,得到资源目录,其中包括:classes.jar、AndroidManifest.xml、jd-gui.cfg等文件,还可以得到多个文件夹,例如aapt、aidl、assets、jni、libs、res等文件夹。其中,classes.jar即为原始类文件。
步骤104的实现方式可以包括:
步骤1041,将第二类文件代替资源目录中的原始类文件,以更新资源目录。
步骤1042,对更新后的资源目录进行压缩,以得到目标渠道SDK。
相应的,在生成目标渠道SDK的过程中,可以用第二类文件来替换资源目录中的原始类文件,以更新资源目录,之后再对更新后的资源目录进行压缩,得到目标渠道SDK。目标渠道SDK的文件类型与原始渠道SDK的文件类型相同,目标渠道SDK的文件名,可以与原始渠道SDK的文件名不相同。例如,原始渠道SKD为bsgamesdk_android_library-2.6.0.aar,目标渠道SDK可以为:bsgamesdk-2.aar。
通过对原始渠道SDK的解压,能够从.aar文件的资源目录中,准确无误地找到包括了原始渠道SDK中所使用到的类的原始类文件。进一步的,用第二类文件代替资源目录中的原始类文件,再进行压缩,得到的目标渠道SDK,能够在保证原始渠道SDK功能的条件下,将与指定基础库重复的基础类从原始渠道SDK中去除。
图3是根据一示例性实施例示出的另一种应用程序安装包的生成方法的流程图,如图3所示,步骤102可以通过以下方式来实现:
步骤1021,将原始类文件和指定基础库进行匹配,确定基础类。
步骤1022,根据基础类生成第一类文件。
步骤1023,删除原始类文件中的基础类,并将原始类文件作为第二类文件。
举例来说,生成第一类文件和第二类文件的方式可以是,先将原始类文件和指定基础库进行匹配,即将原始类文件中包括的类,与指定基础库中包括的类进行对比,将其中重复的类作为基础类。之后,可以新建一个文件,将基础类放入该文件,作为第一类文件。同时可以新建另一个文件,用于存放原始类文件中除基础类之外的其他类,作为第二类文件。也可以将原始类文件中的基础类进行删除,将修改后的原始类文件作为第二类文件。这样,可以直接将删除了基础类的原始类文件作为第二类文件,避免生成新的文件,便于实现,提高了安装包生成的效率。
图4是根据一示例性实施例示出的另一种应用程序安装包的生成方法的流程图,如图4所示,步骤103包括:
步骤1031,获取指定基础库对应的标准配置文件。
步骤1032,将标准配置文件中的原始版本号更新为目标版本号,目标版本号大于原始版本号,指定基础库的版本号为原始版本号。
步骤1033,根据更新后的标准配置文件和第一类文件,生成目标基础库,目标基础库的版本号为目标版本号。
示例的,根据第一类文件生成目标基础库的方式,可以先从开源数据库或者开源平台中获取指定基础库对应的标准配置文件,例如可以是pom(英文:Project ObjectModel)文件。标准配置文件中包括有用于描述指定基础库的属性信息、依赖信息等,其中属性信息中包括有指定基础库的版本号(version),即原始版本号。之后,将标准配置文件中的原始版本号更新为目标版本号,使得目标版本号大于原始版本号,例如可以将目标版本号设置为一个很大的值(例如99.0.0),以保证目标版本号大于原始版本号。最后,根据更新后的标准配置文件和第一类文件,生成版本号为目标版本号的目标基础库。由于标准配置文件中,记录了当前最新版本的指定基础库的属性信息,因此通过修改标准配置文件中的原始版本号,能够保证生成的目标基础库的版本号,大于当前最新版本的指定基础库的版本号,从而使得当功能库中也包含指定基础库时,构建工具会选择集成版本号更大的目标基础库。
具体地,步骤1033的实现方式可以为:
步骤1)将更新后的标准配置文件和第一类文件上传至指定数据库,以使指定数据库根据更新后的标准配置文件和第一类文件生成目标基础库,和目标基础库的存储位置。
步骤2)根据存储位置从指定数据库获取目标基础库。
在具体的应用场景中,可以将更新后的标准配置文件和第一类文件上传至指定数据库,由指定数据库来生成目标基础库,和目标基础库在指定数据库中存储的存储位置。其中,指定数据库可以理解为一个开源的数据库,例如可以是maven仓库,maven仓库生能够根据标准配置文件和第一类文件成目标基础库,和目标基础库的maven坐标(即存储位置)。更新后的标准配置文件,包括有用于描述目标基础库的属性信息、依赖信息等,其中属性信息中包括有目标基础库的版本号,即目标版本号。目标基础库的存储位置可以唯一标识目标基础库,那么通过存储位置,可以从指定数据库中获取目标基础库。
以指定基础库为okhttp3库,指定数据库为maven仓库来举例,先从开源数据库中获取okhttp3库的pom文件,该pom文件例如可以包括以下内容:
Figure BDA0002516480660000121
Figure BDA0002516480660000131
其中,<version>3.6.0</version>表示原始版本号为3.6.0,那么可以修改为<version>99.0.0</version>,以将原始版本号更新为目标版本号:99.0.0。然后将更新后的pom文件和第一类文件上传至maven仓库,以使maven仓库生成一个maven坐标为com.squareup.okhttp3:okhttp:99.0.0的okhttp3库,即目标基础库。
通过指定数据库来生成目标基础库,并对目标基础库进行管理,能够保证目标基础库的可靠性,并且能够使其他开发人员在有同样需求时,能够根据存储位置直接获取目标基础库,提高了开发效率和目标基础库的适用范围。
图5是根据一示例性实施例示出的另一种应用程序安装包的生成方法的流程图,如图5所示,步骤105可以包括:
步骤1051,在应用程序的构建配置文件中引入目标渠道SDK、目标基础库和功能库,功能库为应用程序使用的,除目标渠道SDK之外的库,功能库中包括指定基础库的类。
步骤1052,按照构建配置文件生成安装包。
具体的,可以通过应用程序的构建配置文件,来引入目标渠道SDK、目标基础库和功能库,其中,功能库中包括指定基础库的类,即功能库依赖于指定基础库,也可以理解为功能库中包括的类与指定基础库包括的类存在重复。再利用构建工具按照构建配置文件来生成应用程序的安装包。构建配置文件例如可以是build.gradle文件,构建工具可以是Gradle工具。
以原始渠道SKD为bsgamesdk_android_library-2.6.0.aar,功能库为retrofit库,指定基础库为的okhttp3库(retrofit库依赖于okhttp3库),指定数据库为maven仓库来举例。首先,对bsgamesdk_android_library-2.6.0.aar进行解压,以获取其中的classes.jar。然后将classes.jar复制一份,命名为bsgame-okhttp3.jar。然后将classes.jar中与okhttp3库重复的基础类删除,得到第二类文件,即修改后的classes.jar为第二类文件。同时,将bsgame-okhttp3.jar中,不属于okhttp3库的类删除,得到第一类文件,即修改后的bsgame-okhttp3.jar为第一类文件。
之后,从开源数据库中获取okhttp3库的pom文件,将pom文件中的版本号修改为99.0.0,再将更新后的pom文件和修改后的bsgame-okhttp3.jar上传至maven仓库,以使maven仓库生成一个maven坐标为com.squareup.okhttp3:okhttp:99.0.0的okhttp3库。同时,将包含了修改后的classes.jar的资源目录进行压缩,得到目标渠道SDK:bsgamesdk-2.aar。
在build.gradle文件中加入以下代码,以引入目标渠道SDK、目标基础库和功能库:
dependencies{
//这里引入目标渠道SDK
api"compile(name:'bsgamesdk-2',ext:'aar')"
//这里引入retrofit库
api'com.squareup.retrofit2:retrofit:2.7.0'
//这里引入目标基础库
api'com.squareup.okhttp3:okhttp:99.0.0'
}
最后,利用Gradle工具按照上述build.gradle文件来生成安装包。
这样,由于构建配置文件中包括了目标渠道SDK、目标基础库和功能库,这样在构建安装包时,构建工具会选择集成版本号更大的目标基础库,能够在保证应用程序功能的前提下,避免出现类重复的问题,提高了开发效率。
综上所述,本公开首先获取待发布渠道所提供的原始渠道SDK中的原始类文件,其中,原始类文件包括了原始渠道SDK中的类,然后根据原始类文件,生成包括了基础类的第一类文件,和包括了原始渠道SDK中除基础类之外其他的类的第二类文件,基础类为原始渠道SDK中与指定基础库重复的类。再根据第一类文件生成版本号大于指定基础库的版本号的目标基础库,同时根据第二类文件生成目标渠道SDK,最后根据目标渠道SDK和目标基础库,生成应用程序的安装包。本公开将原始渠道SDK中与指定基础库重复的基础类,封装为目标基础库,同时将原始类文件中的基础类删除,以将原始渠道SDK重新封装为目标渠道SDK,从而根据目标基础库和目标渠道SDK生成安装包,无需手动剔除重复的类,就能够自动生成可以通过发布渠道审核的安装包,提高了开发效率。
图6是根据一示例性实施例示出的一种应用程序安装包的生成装置的框图,如图6所示,该装置200包括:
获取模块201,用于获取原始渠道SDK中的原始类文件,原始类文件包括原始渠道SDK中的类,原始渠道SDK为应用程序待发布渠道所提供的SDK。
第一生成模块202,用于根据原始类文件,生成第一类文件和第二类文件,第一类文件包括基础类,第二类文件包括原始渠道SDK中除基础类之外其他的类,基础类为原始渠道SDK中与指定基础库重复的类。
第一生成模块202,还用于根据第一类文件生成目标基础库,目标基础库的版本号大于指定基础库的版本号。
第一生成模块202,还用于根据第二类文件生成目标渠道SDK。
第二生成模块203,用于根据目标渠道SDK和目标基础库,生成应用程序的安装包。
可选地,获取模块201用于:
对原始渠道SDK进行解压,以得到原始渠道SDK对应的资源目录。从资源目录中获取原始类文件。
第一生成模块202用于:
将第二类文件代替资源目录中的原始类文件,以更新资源目录。对更新后的资源目录进行压缩,以得到目标渠道SDK。
图7是根据一示例性实施例示出的另一种应用程序安装包的生成装置的框图,如图7所示,第一生成模块202包括:
匹配子模块2021,用于将原始类文件和指定基础库进行匹配,确定基础类。
文件生成子模块2022,用于根据基础类生成第一类文件。
文件生成子模块2022,还用于删除原始类文件中的基础类,并将原始类文件作为第二类文件。
图8是根据一示例性实施例示出的另一种应用程序安装包的生成装置的框图,如图8所示,第一生成模块202包括:
获取子模块2023,用于获取指定基础库对应的标准配置文件。
更新子模块2024,用于将标准配置文件中的原始版本号更新为目标版本号,目标版本号大于原始版本号,指定基础库的版本号为原始版本号。
库生成子模块2025,用于根据更新后的标准配置文件和第一类文件,生成目标基础库,目标基础库的版本号为目标版本号。
可选地,库生成子模块2025用于执行以下步骤:
步骤1)将更新后的标准配置文件和第一类文件上传至指定数据库,以使指定数据库根据更新后的标准配置文件和第一类文件生成目标基础库,和目标基础库的存储位置。
步骤2)根据存储位置从指定数据库获取目标基础库。
图9是根据一示例性实施例示出的另一种应用程序安装包的生成装置的框图,如图9所示,第二生成模块203包括:
引入子模块2031,用于在应用程序的构建配置文件中引入目标渠道SDK、目标基础库和功能库,功能库为应用程序使用的,除目标渠道SDK之外的库,功能库中包括指定基础库的类。
构建子模块2032,用于按照构建配置文件生成安装包。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
综上所述,本公开首先获取待发布渠道所提供的原始渠道SDK中的原始类文件,其中,原始类文件包括了原始渠道SDK中的类,然后根据原始类文件,生成包括了基础类的第一类文件,和包括了原始渠道SDK中除基础类之外其他的类的第二类文件,基础类为原始渠道SDK中与指定基础库重复的类。再根据第一类文件生成版本号大于指定基础库的版本号的目标基础库,同时根据第二类文件生成目标渠道SDK,最后根据目标渠道SDK和目标基础库,生成应用程序的安装包。本公开将原始渠道SDK中与指定基础库重复的基础类,封装为目标基础库,同时将原始类文件中的基础类删除,以将原始渠道SDK重新封装为目标渠道SDK,从而根据目标基础库和目标渠道SDK生成安装包,无需手动剔除重复的类,就能够自动生成可以通过发布渠道审核的安装包,提高了开发效率。
下面参考图10,其示出了适于用来实现本公开实施例的电子设备300(即上述应用程序安装包的生成方法的执行主体,可以是终端设备,也可以是服务器)的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图10示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图10所示,电子设备300可以包括处理装置(例如中央处理器、图形处理器等)301,其可以根据存储在只读存储器(ROM)302中的程序或者从存储装置308加载到随机访问存储器(RAM)303中的程序而执行各种适当的动作和处理。在RAM 303中,还存储有电子设备300操作所需的各种程序和数据。处理装置301、ROM 302以及RAM 303通过总线304彼此相连。输入/输出(I/O)接口305也连接至总线304。
通常,以下装置可以连接至I/O接口305:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置306;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置307;包括例如磁带、硬盘等的存储装置308;以及通信装置309。通信装置309可以允许电子设备300与其他设备进行无线或有线通信以交换数据。虽然图10示出了具有各种装置的电子设备300,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置309从网络上被下载和安装,或者从存储装置308被安装,或者从ROM 302被安装。在该计算机程序被处理装置3c01执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,终端设备、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取原始渠道SDK中的原始类文件,所述原始类文件包括所述原始渠道SDK中的类,所述原始渠道SDK为应用程序待发布渠道所提供的SDK;根据所述原始类文件,生成第一类文件和第二类文件,所述第一类文件包括基础类,所述第二类文件包括所述原始渠道SDK中除所述基础类之外其他的类,所述基础类为所述原始渠道SDK中与指定基础库重复的类;根据所述第一类文件生成目标基础库,所述目标基础库的版本号大于所述指定基础库的版本号;根据所述第二类文件生成目标渠道SDK;根据所述目标渠道SDK和所述目标基础库,生成所述应用程序的安装包。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定,例如,获取模块还可以被描述为“获取原始类文件的模块”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,示例1提供了一种应用程序安装包的生成方法,包括:获取原始渠道SDK中的原始类文件,所述原始类文件包括所述原始渠道SDK中的类,所述原始渠道SDK为应用程序待发布渠道所提供的SDK;根据所述原始类文件,生成第一类文件和第二类文件,所述第一类文件包括基础类,所述第二类文件包括所述原始渠道SDK中除所述基础类之外其他的类,所述基础类为所述原始渠道SDK中与指定基础库重复的类;根据所述第一类文件生成目标基础库,所述目标基础库的版本号大于所述指定基础库的版本号;根据所述第二类文件生成目标渠道SDK;根据所述目标渠道SDK和所述目标基础库,生成所述应用程序的安装包。
根据本公开的一个或多个实施例,示例2提供了示例1的方法,所述获取原始渠道SDK中的原始类文件,包括:对所述原始渠道SDK进行解压,以得到所述原始渠道SDK对应的资源目录;从所述资源目录中获取所述原始类文件;所述根据所述第二类文件生成目标渠道SDK,包括:将所述第二类文件代替所述资源目录中的所述原始类文件,以更新所述资源目录;对更新后的所述资源目录进行压缩,以得到所述目标渠道SDK。
根据本公开的一个或多个实施例,示例3提供了示例1的方法,所述根据所述原始类文件,生成第一类文件和第二类文件,包括:将所述原始类文件和所述指定基础库进行匹配,确定所述基础类;根据所述基础类生成所述第一类文件;删除所述原始类文件中的所述基础类,并将所述原始类文件作为所述第二类文件。
根据本公开的一个或多个实施例,示例4提供了示例1的方法,所述根据所述第一类文件生成目标基础库,包括:获取所述指定基础库对应的标准配置文件;将所述标准配置文件中的原始版本号更新为目标版本号,所述目标版本号大于所述原始版本号,所述指定基础库的版本号为所述原始版本号;根据更新后的所述标准配置文件和所述第一类文件,生成所述目标基础库,所述目标基础库的版本号为所述目标版本号。
根据本公开的一个或多个实施例,示例5提供了示例4的方法,所述根据更新后的所述标准配置文件和所述第一类文件,生成所述目标基础库,包括:将更新后的所述标准配置文件和所述第一类文件上传指定数据库,以使所述指定数据库根据更新后的所述标准配置文件和所述第一类文件生成所述目标基础库,和所述目标基础库的存储位置;根据所述存储位置从所述指定数据库获取所述目标基础库。
根据本公开的一个或多个实施例,示例6提供了示例1至示例5的方法,所述根据所述目标渠道SDK和所述目标基础库,生成所述应用程序的安装包,包括:在所述应用程序的构建配置文件中引入所述目标渠道SDK、所述目标基础库和功能库,所述功能库为所述应用程序使用的,除所述目标渠道SDK之外的库,所述功能库中包括所述指定基础库的类;按照所述构建配置文件生成所述安装包。
根据本公开的一个或多个实施例,示例7提供了一种应用程序安装包的生成装置,所述装置包括:获取模块,用于获取原始渠道SDK中的原始类文件,所述原始类文件包括所述原始渠道SDK中的类,所述原始渠道SDK为应用程序待发布渠道所提供的SDK;第一生成模块,用于根据所述原始类文件,生成第一类文件和第二类文件,所述第一类文件包括基础类,所述第二类文件包括所述原始渠道SDK中除所述基础类之外其他的类,所述基础类为所述原始渠道SDK中与指定基础库重复的类;所述第一生成模块,还用于根据所述第一类文件生成目标基础库,所述目标基础库的版本号大于所述指定基础库的版本号;所述第一生成模块,还用于根据所述第二类文件生成目标渠道SDK;第二生成模块,用于根据所述目标渠道SDK和所述目标基础库,生成所述应用程序的安装包。
根据本公开的一个或多个实施例,示例8提供了示例7的装置,所述第一生成模块包括:获取子模块,用于获取所述指定基础库对应的标准配置文件;更新子模块,用于将所述标准配置文件中的原始版本号更新为目标版本号,所述目标版本号大于所述原始版本号,所述指定基础库的版本号为所述原始版本号;生成子模块,用于根据更新后的所述标准配置文件和所述第一类文件,生成所述目标基础库,所述目标基础库的版本号为所述目标版本号。
根据本公开的一个或多个实施例,示例9提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现示例1至示例6中所述方法的步骤。
根据本公开的一个或多个实施例,示例10提供了一种电子设备,包括:存储装置,其上存储有计算机程序;处理装置,用于执行所述存储装置中的所述计算机程序,以实现示例1至示例6中所述方法的步骤。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

Claims (10)

1.一种应用程序安装包的生成方法,其特征在于,所述方法包括:
获取原始渠道SDK中的原始类文件,所述原始类文件包括所述原始渠道SDK中的类,所述原始渠道SDK为应用程序待发布渠道所提供的SDK;
根据所述原始类文件,生成第一类文件和第二类文件,所述第一类文件包括基础类,所述第二类文件包括所述原始渠道SDK中除所述基础类之外其他的类,所述基础类为所述原始渠道SDK中与指定基础库重复的类;
根据所述第一类文件生成目标基础库,所述目标基础库的版本号大于所述指定基础库的版本号;
根据所述第二类文件生成目标渠道SDK;
根据所述目标渠道SDK和所述目标基础库,生成所述应用程序的安装包。
2.根据权利要求1所述的方法,其特征在于,所述获取原始渠道SDK中的原始类文件,包括:
对所述原始渠道SDK进行解压,以得到所述原始渠道SDK对应的资源目录;
从所述资源目录中获取所述原始类文件;
所述根据所述第二类文件生成目标渠道SDK,包括:
将所述第二类文件代替所述资源目录中的所述原始类文件,以更新所述资源目录;
对更新后的所述资源目录进行压缩,以得到所述目标渠道SDK。
3.根据权利要求1所述的方法,其特征在于,所述根据所述原始类文件,生成第一类文件和第二类文件,包括:
将所述原始类文件和所述指定基础库进行匹配,确定所述基础类;
根据所述基础类生成所述第一类文件;
删除所述原始类文件中的所述基础类,并将所述原始类文件作为所述第二类文件。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一类文件生成目标基础库,包括:
获取所述指定基础库对应的标准配置文件;
将所述标准配置文件中的原始版本号更新为目标版本号,所述目标版本号大于所述原始版本号,所述指定基础库的版本号为所述原始版本号;
根据更新后的所述标准配置文件和所述第一类文件,生成所述目标基础库,所述目标基础库的版本号为所述目标版本号。
5.根据权利要求4所述的方法,其特征在于,所述根据更新后的所述标准配置文件和所述第一类文件,生成所述目标基础库,包括:
将更新后的所述标准配置文件和所述第一类文件上传至指定数据库,以使所述指定数据库根据更新后的所述标准配置文件和所述第一类文件生成所述目标基础库,和所述目标基础库的存储位置;
根据所述存储位置从所述指定数据库获取所述目标基础库。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述根据所述目标渠道SDK和所述目标基础库,生成所述应用程序的安装包,包括:
在所述应用程序的构建配置文件中引入所述目标渠道SDK、所述目标基础库和功能库,所述功能库为所述应用程序使用的,除所述目标渠道SDK之外的库,所述功能库中包括所述指定基础库的类;
按照所述构建配置文件生成所述安装包。
7.一种应用程序安装包的生成装置,其特征在于,所述装置包括:
获取模块,用于获取原始渠道SDK中的原始类文件,所述原始类文件包括所述原始渠道SDK中的类,所述原始渠道SDK为应用程序待发布渠道所提供的SDK;
第一生成模块,用于根据所述原始类文件,生成第一类文件和第二类文件,所述第一类文件包括基础类,所述第二类文件包括所述原始渠道SDK中除所述基础类之外其他的类,所述基础类为所述原始渠道SDK中与指定基础库重复的类;
所述第一生成模块,还用于根据所述第一类文件生成目标基础库,所述目标基础库的版本号大于所述指定基础库的版本号;
所述第一生成模块,还用于根据所述第二类文件生成目标渠道SDK;
第二生成模块,用于根据所述目标渠道SDK和所述目标基础库,生成所述应用程序的安装包。
8.根据权利要求7所述的装置,其特征在于,所述第一生成模块包括:
获取子模块,用于获取所述指定基础库对应的标准配置文件;
更新子模块,用于将所述标准配置文件中的原始版本号更新为目标版本号,所述目标版本号大于所述原始版本号,所述指定基础库的版本号为所述原始版本号;
生成子模块,用于根据更新后的所述标准配置文件和所述第一类文件,生成所述目标基础库,所述目标基础库的版本号为所述目标版本号。
9.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理装置执行时实现权利要求1-6中任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:
存储装置,其上存储有计算机程序;
处理装置,用于执行所述存储装置中的所述计算机程序,以实现权利要求1-6中任一项所述方法的步骤。
CN202010478302.5A 2020-05-29 2020-05-29 应用程序安装包的生成方法、装置、可读介质和电子设备 Active CN111625232B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010478302.5A CN111625232B (zh) 2020-05-29 2020-05-29 应用程序安装包的生成方法、装置、可读介质和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010478302.5A CN111625232B (zh) 2020-05-29 2020-05-29 应用程序安装包的生成方法、装置、可读介质和电子设备

Publications (2)

Publication Number Publication Date
CN111625232A true CN111625232A (zh) 2020-09-04
CN111625232B CN111625232B (zh) 2023-03-24

Family

ID=72271158

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010478302.5A Active CN111625232B (zh) 2020-05-29 2020-05-29 应用程序安装包的生成方法、装置、可读介质和电子设备

Country Status (1)

Country Link
CN (1) CN111625232B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633892B1 (en) * 1998-11-30 2003-10-14 International Business Machines Corporation Archiving tool
US7069554B1 (en) * 1998-05-06 2006-06-27 Sun Microsystems, Inc. Component installer permitting interaction among isolated components in accordance with defined rules
US20150186123A1 (en) * 2013-12-27 2015-07-02 Buongiorno S.p.A. Method and system for implementing in-app software development kits
CN106874060A (zh) * 2017-01-16 2017-06-20 上海斐讯数据通信技术有限公司 一种判断jar包是否被引用的方法及设备
CN108427552A (zh) * 2018-03-01 2018-08-21 深圳市创梦天地科技有限公司 安卓应用安装包制作装置、方法、电子设备以及存储介质
CN110175148A (zh) * 2019-05-22 2019-08-27 努比亚技术有限公司 终端应用文件存储方法、装置、移动终端及可读存储介质
US20190303912A1 (en) * 2018-04-02 2019-10-03 Hover Developer Services, Inc. System and method for wireless transactions
CN110851170A (zh) * 2019-09-29 2020-02-28 深圳市星河互动科技有限公司 软件多渠道发布方法及相关设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7069554B1 (en) * 1998-05-06 2006-06-27 Sun Microsystems, Inc. Component installer permitting interaction among isolated components in accordance with defined rules
US6633892B1 (en) * 1998-11-30 2003-10-14 International Business Machines Corporation Archiving tool
US20150186123A1 (en) * 2013-12-27 2015-07-02 Buongiorno S.p.A. Method and system for implementing in-app software development kits
CN106874060A (zh) * 2017-01-16 2017-06-20 上海斐讯数据通信技术有限公司 一种判断jar包是否被引用的方法及设备
CN108427552A (zh) * 2018-03-01 2018-08-21 深圳市创梦天地科技有限公司 安卓应用安装包制作装置、方法、电子设备以及存储介质
US20190303912A1 (en) * 2018-04-02 2019-10-03 Hover Developer Services, Inc. System and method for wireless transactions
CN110175148A (zh) * 2019-05-22 2019-08-27 努比亚技术有限公司 终端应用文件存储方法、装置、移动终端及可读存储介质
CN110851170A (zh) * 2019-09-29 2020-02-28 深圳市星河互动科技有限公司 软件多渠道发布方法及相关设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
WEITAO_666: "友盟推送(U-Push)集成、踩坑和解决与阿里云系列产品的依赖冲突", 《HTTPS://BLOG.CSDN.NET/WEITAO_666/ARTICLE/DETAILS/97022874》 *
路国强: "support v4/design/v7依赖的冲突的解决", 《HTTPS://DEVELOPER.ALIYUN.COM/ARTICLE/652560》 *

Also Published As

Publication number Publication date
CN111625232B (zh) 2023-03-24

Similar Documents

Publication Publication Date Title
CN110960855B (zh) 一种通信协议代码更新方法、装置、电子设备及存储介质
CN112395253B (zh) 索引文件生成方法、终端设备、电子设备及介质
CN110851139B (zh) 用于检查代码的方法、装置和电子设备
CN112214408B (zh) 依赖冲突检测方法、装置、电子设备及计算机可读介质
CN112965761B (zh) 一种数据处理方法、系统、电子设备及存储介质
CN111309304B (zh) 一种生成idl文件的方法、装置、介质和电子设备
CN111338944B (zh) 远程过程调用rpc接口测试方法、装置、介质及设备
CN112596720A (zh) 业务运行方法、装置、电子设备和计算机存储介质
CN113407165B (zh) Sdk的生成和自升级方法、装置、可读介质和设备
CN112395363A (zh) 数据同步方法、装置、设备及可读存储介质
US20240095022A1 (en) Hotfix method, apparatus, device and storage medium
CN111338666A (zh) 一种实现应用程序升级的方法、装置、介质和电子设备
CN112416303B (zh) 软件开发工具包热修复方法、装置及电子设备
CN112650521A (zh) 软件开发工具包sdk热修复方法、装置与电子设备
CN116679930A (zh) 一种前端项目的构建方法、装置、电子设备及存储介质
CN111625232B (zh) 应用程序安装包的生成方法、装置、可读介质和电子设备
CN111240801A (zh) 生成堆内存快照文件的方法、装置、介质和电子设备
CN111324336B (zh) 实现依赖注入的方法、装置、终端和存储介质
CN114153462A (zh) 客户端源码处理方法、装置、存储介质及电子设备
CN111240657A (zh) 用于生成sdk的方法、装置和电子设备
CN113032046A (zh) so文件的修复方法、装置、设备及存储介质
CN113031986B (zh) 特征比对算法动态加载方法、装置、终端及介质
CN110377326B (zh) 安装包生成方法、装置、开发设备和计算机可读介质
CN111209225B (zh) 获取实际地址的方法、装置、介质和电子设备
CN113220371A (zh) Sdk接入方法、装置、介质及电子设备

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