CN106919382A - 用于生成应用更新包的方法和装置 - Google Patents

用于生成应用更新包的方法和装置 Download PDF

Info

Publication number
CN106919382A
CN106919382A CN201710046063.4A CN201710046063A CN106919382A CN 106919382 A CN106919382 A CN 106919382A CN 201710046063 A CN201710046063 A CN 201710046063A CN 106919382 A CN106919382 A CN 106919382A
Authority
CN
China
Prior art keywords
code
installation package
file
application installation
application
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
Application number
CN201710046063.4A
Other languages
English (en)
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 Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201710046063.4A priority Critical patent/CN106919382A/zh
Publication of CN106919382A publication Critical patent/CN106919382A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请公开了用于生成应用更新包的方法和装置。该方法的一具体实施方式包括:获取更新后的应用安装包和待更新的应用安装包;将更新后的应用安装包中的代码文件和待更新的应用安装包中的代码文件进行差异比较,获取代码差异信息;将代码差异信息写入代码差异文件中;将更新后的应用安装包中的资源文件和待更新的应用安装包中的资源文件进行比对,获取用于更新的资源文件;将代码差异文件和用于更新的资源文件进行压缩,生成应用更新包。该实施方式大大节省了用户下载应用更新包所消耗的时间和流量。

Description

用于生成应用更新包的方法和装置
技术领域
本申请涉及计算机技术领域,具体涉及互联网技术领域,尤其涉及用于生成应用更新包的方法和装置。
背景技术
随着互联网的飞速发展,各种应用层出不穷。然而,应用发布后,在使用过程中,经常会被发现存在各种缺陷。由于缺陷的存在,不仅会严重影响用户的体验,还会给用户带来极大的安全隐患。因此,应用厂商一般都会定期发布已克服缺陷的新版本的应用安装包,供用户升级应用。
然而,新版本的应用安装包中绝大多数的文件是与旧版本的应用安装包中的文件重复的,用户每次升级应用都要重复下载这些冗余文件,导致用户消耗流量较多。
发明内容
本申请的目的在于提出一种改进的用于生成应用更新包的方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请提供了一种用于生成应用更新包的方法,该方法包括:获取更新后的应用安装包和待更新的应用安装包;将更新后的应用安装包中的代码文件和待更新的应用安装包中的代码文件进行差异比较,获取代码差异信息;将代码差异信息写入代码差异文件中;将更新后的应用安装包中的资源文件和待更新的应用安装包中的资源文件进行比对,获取用于更新的资源文件;将代码差异文件和用于更新的资源文件进行压缩,生成应用更新包。
在一些实施例中,将更新后的应用安装包中的代码文件和待更新的应用安装包中的代码文件进行差异比较,获取代码差异信息,包括:将更新后的应用安装包中的代码文件中的代码和待更新的应用安装包中的代码文件中的代码进行字符比对,获取从待更新的应用安装包中的代码文件中的代码更新为更新后的应用安装包中的代码文件中的代码所需新增、删除或变更的字符。
在一些实施例中,将代码差异信息写入代码差异文件中,包括:将所获取的新增、删除或变更的字符写入代码差异文件中。
在一些实施例中,将更新后的应用安装包中的资源文件和待更新的应用安装包中的资源文件进行比对,获取用于更新的资源文件,包括:遍历更新后的应用安装包中的资源文件和待更新的应用安装包中的资源文件,获取从待更新的应用安装包中的资源文件更新为更新后的应用安装包中的资源文件所需新增或变更的资源文件。
在一些实施例中,该方法还包括:将应用更新包设置为用于灰度发布的预发布版本。
第二方面,本申请提供了一种用于生成应用更新包的装置,该装置包括:获取单元,配置用于获取更新后的应用安装包和待更新的应用安装包;比较单元,配置用于将更新后的应用安装包中的代码文件和待更新的应用安装包中的代码文件进行差异比较,获取代码差异信息;写入单元,配置用于将代码差异信息写入代码差异文件中;比对单元,配置用于将更新后的应用安装包中的资源文件和待更新的应用安装包中的资源文件进行比对,获取用于更新的资源文件;生成单元,配置用于将代码差异文件和用于更新的资源文件进行压缩,生成应用更新包。
在一些实施例中,比较单元进一步配置用于:将更新后的应用安装包中的代码文件中的代码和待更新的应用安装包中的代码文件中的代码进行字符比对,获取从待更新的应用安装包中的代码文件中的代码更新为更新后的应用安装包中的代码文件中的代码所需新增、删除或变更的字符。
在一些实施例中,写入单元进一步配置用于:将所获取的新增、删除或变更的字符写入代码差异文件中。
在一些实施例中,比对单元进一步配置用于:遍历更新后的应用安装包中的资源文件和待更新的应用安装包中的资源文件,获取从待更新的应用安装包中的资源文件更新为更新后的应用安装包中的资源文件所需新增或变更的资源文件。
在一些实施例中,该装置还包括:设置单元,配置用于将应用更新包设置为用于灰度发布的预发布版本。
本申请提供的用于生成应用更新包的方法和装置,通过将更新后的应用安装包中的代码文件和待更新的应用安装包中的代码文件进行差异比较,获取代码差异信息,并将代码差异信息写入代码差异文件中;通过将更新后的应用安装包中的资源文件和待更新的应用安装包中的资源文件进行比对,获取用于更新的资源文件;然后将代码差异文件和用于更新的资源文件进行压缩以生成应用更新包。应用更新包中只包括从待更新的应用安装包更新为更新后的应用安装包所需的增量文件,从而大大节省了用户下载应用更新包的所消耗的时间和流量。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的用于生成应用更新包的方法的一个实施例的流程图;
图3是根据本申请的用于生成应用更新包的方法的一个应用场景的示意图;
图4是根据本申请的用于生成应用更新包的方法的又一个实施例的流程图;
图5是根据本申请的用于生成应用更新包的装置的一个实施例的结构示意图;
图6是适于用来实现本申请实施例的服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于生成应用更新包的方法或用于生成应用更新包的装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104、105,服务器106和数据库服务器107。网络104用以在终端设备101、102、103和服务器106之间提供通信链路的介质,网络105用以在服务器106和数据库服务器107之间提供通信链路的介质。网络104、105可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104从服务器106下载通讯客户端应用更新包以升级终端设备101、102、103上已安装的通讯客户端应用。其中,终端设备101、102、103上已安装的通讯客户端应用可以包括但不限于网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
数据库服务器107可以是存储各种版本的通讯客户端应用安装包的服务器。
服务器106可以是提供各种服务的服务器,例如服务器106可以是生成终端设备101、102、103上已安装的通讯客户端应用更新包的后台服务器。后台服务器可以从数据库服务器107中获取各种版本的通讯客户端应用安装包,并对获取到的通讯客户端应用安装包等数据进行分析等处理,并将处理结果(例如通讯客户端应用更新包)反馈给终端设备。
需要说明的是,本申请实施例所提供的用于生成应用更新包的方法一般由服务器106执行,相应地,用于生成应用更新包的装置一般设置于服务器106中。
应该理解,图1中的终端设备、网络、服务器和数据库服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络、服务器和数据库服务器。在服务器106中存储有各种版本的通讯客户端应用安装包或者服务器106可以生成通讯客户端应用安装包的情况下,系统架构100中可以不设置数据库服务器107。
继续参考图2,示出了根据本申请的用于生成应用更新包的方法的一个实施例的流程200。该用于生成应用更新包的方法,包括以下步骤:
步骤201,获取更新后的应用安装包和待更新的应用安装包。
在本实施例中,用于生成应用更新包的方法运行于其上的电子设备(例如图1所示的服务器106)可以获取更新后的应用安装包和待更新的应用安装包。其中,更新后的应用安装包和待更新的应用安装包可以为不同版本的应用安装包。作为示例,更新后的应用安装包可以是2.0版本(Release 2.0),待更新的应用安装包可以是1.0版本(Release 1.0)。
需要说明的是,电子设备可以通过有线或无线的方式从与其通信连接的数据库服务器(例如图1所示的数据库服务器107)获取更新后的应用安装包和待更新的应用安装包;还可以从本地获取更新后的应用安装包和待更新的应用安装包,其中,本地存储的更新后的应用安装包和待更新的应用安装包可以是电子设备预先生成的,也可以是第三方服务器预先生成并发送给电子设备中的。本实施例对更新后的应用安装包和待更新的应用安装包的具体存储位置不进行限定。
步骤202,将更新后的应用安装包中的代码文件和待更新的应用安装包中的代码文件进行差异比较,获取代码差异信息。
在本实施例中,基于步骤201中获取的更新后的应用安装包和待更新的应用安装包,电子设备(例如图1所示的服务器106)可以首先查找出更新后的应用安装包中的代码文件和待更新的应用安装包中的代码文件,然后将更新后的应用安装包中的代码文件和待更新的应用安装包中的代码文件进行差异比较,以获取代码差异信息。其中,应用安装包中可以包括客户端安装该应用所需的代码文件,代码文件可以是存储有代码的exe格式的二进制可执行文件,代码差异信息可以是更新后的应用安装包中的代码文件与待更新的应用安装包中的代码文件之间的区别信息。作为示例,电子设备可以将更新后的应用安装包中的代码文件中的代码和待更新的应用安装包中的代码文件中的代码通过diff-match-patch算法进行计算,以获取精准的代码差异信息。
在本实施例的一些可选的实现方式中,电子设备可以将更新后的应用安装包中的代码文件中的代码和待更新的应用安装包中的代码文件中的代码进行字符比对,获取从待更新的应用安装包中的代码文件中的代码更新为更新后的应用安装包中的代码文件中的代码所需新增、删除或变更的字符。其中,字符比对可以是将两个代码文件中的相同位置的字符逐个进行比对,以确定两个代码文件中相同位置的字符是否发生可变更。作为示例,更新后的应用安装包中的代码文件中的代码包括字符串“天气真不错啊,想出去走走”,待更新的应用安装包中的代码文件中的代码包括字符串“天气不行啊,能出去走走吗”,通过将两个字符串中的字符逐个进行比对,可知由字符串“天气不行啊,能出去走走吗”更新为字符串“天气真不错啊,想出去走走”需要新增字符“真”;删除字符“吗”;将字符“行”替换成“错”,将字符“能”替换成“想”。
步骤203,将代码差异信息写入代码差异文件中。
在本实施例中,基于步骤202获取的代码差异信息,电子设备(例如图1所示的服务器106)可以将代码差异信息写入代码差异文件中。其中,代码差异文件可以是文本文件。
在本实施例中,当安装有该应用的用户下载了包括代码差异文件的应用更新包后,客户端可以按照代码差异文件中记录的代码差异信息对客户端上的该应用的代码文件进行修改,以使客户端上的该应用的代码文件更新为更新后的应用安装包中的代码文件。
在本实施例的一些可选的实现方式中,电子设备可以将所获取的新增、删除或变更的字符写入代码差异文件中。作为示例,代码差异文件中可以记录信息如下:
1.将第201-210个字符由“kukukukuku”替换为“hahahahaha”;
2.将第301-310个字符“dadadadada”删除;
3.在第400个字符后面插入12个字符“heiheiheihei”。
步骤204,将更新后的应用安装包中的资源文件和待更新的应用安装包中的资源文件进行比对,获取用于更新的资源文件。
在本实施例中,基于步骤201中获取的更新后的应用安装包和待更新的应用安装包,电子设备(例如图1所示的服务器106)可以首先查找出更新后的应用安装包中的资源文件和待更新的应用安装包中的资源文件,然后将更新后的应用安装包中的资源文件和待更新的应用安装包中的资源文件进行比对,以获取用于更新的资源文件。其中,应用安装包中可以包括客户端安装该应用所需的资源文件,资源文件可以包括但不限于以下至少一项:图片、音频、视频、文本、其他可以在计算机中展示的内容。用于更新的资源文件可以是更新后的应用安装包中的资源文件中与待更新的应用安装包中的资源文件中存在区别的资源文件。作为示例,电子设备可以首先获取更新后的应用安装包中的资源文件的名称和待更新的应用安装包中的资源文件的名称,然后将更新后的应用安装包中的资源文件的名称和待更新的应用安装包中的资源文件的名称进行比对,对于名称不同的资源文件,可以被认为是更新后的应用安装包中新增或变更的资源文件,对于名称相同的资源文件,可以进一步确定名称相同的资源文件的大小或创建时间是否相同,若资源文件的大小或创建时间不同,则可以被认为是更新后的应用安装包中变更的资源文件。
在本实施例中,当安装有该应用的用户下载了包括用于更新的资源文件的应用更新包后,客户端可以将用于更新的资源文件复制到客户端用于存储该应用的资源文件的文件夹中。
在本实施例的一些可选的实现方式中,电子设备可以遍历更新后的应用安装包中的资源文件和待更新的应用安装包中的资源文件,获取从待更新的应用安装包中的资源文件更新为更新后的应用安装包中的资源文件所需新增或变更的资源文件。其中,从待更新的应用安装包中的资源文件更新为更新后的应用安装包中的资源文件所需新增或变更的资源文件即为用于更新的资源文件。
步骤205,将代码差异文件和用于更新的资源文件进行压缩,生成应用更新包。
在本实施例中,基于步骤203中的代码差异文件中和步骤204中的用于更新的资源文件,电子设备可以将代码差异文件和用于更新的资源文件打包成一个压缩包,该压缩包即为应用更新包。
继续参见图3,图3是根据本实施例的用于生成应用更新包的方法的一个示意性的应用场景300。在图3的应用场景中,如301所示,电子设备首先获取更新后的应用安装包和待更新的应用安装包,其中,更新后的应用安装包是2.0版本,待更新的应用安装包的版本是1.0版本。如302所示,电子设备可以获取2.0版本的应用安装包中的代码文件和1.0版本的应用安装包中的代码文件,其中,2.0版本的代码文件中的代码为:**********天气真不错啊,想出去走走**********(字符串“天气真不错啊,想出去走走”之前省略了200个字符),1.0版本的代码文件中的代码为:**********天气不行啊,能出去走走吗**********(字符串“天气不行啊,能出去走走吗”之前省略了200个字符)。如303所示,电子设备可以将2.0版本和1.0版本的代码文件进行差异比较,获取差异信息,并将差异信息写入代码差异文件中,其中,代码差异文件中记录的代码差异信息如下:
1.在第202个字符之后增加字符“真”;
2.将第204个字符“行”替换成“错”;
3.将第207个字符“能”替换成“想”;
4.将第212个字符“吗”删除。
如304所示,电子设备可以获取2.0版本的应用安装包中的资源文件和1.0版本的应用安装包中的资源文件,其中,1.0版本的资源文件中的资源文件名如下:
1.btn_find_hotlabel@1x.png;
2.btn_find_hotlabel@2x.png;
3.btn_find_ranking@1x.png;
4.btn_find_ranking@2x.png。
2.0版本的资源文件中的资源文件名如下:
1.btn_find_hotlabel@1x.png;
2.btn_find_hotlabel@2x.png;
3.btn_find_ranking@1x.png;
4.btn_find_ranking@2x.png;
5.btn_find_switch@1x.png;
6.btn_find_switch@2x.png;
7.btn_hfxq_gif_fail@1x.png;
8.btn_hfxq_gif_fail@2x.png。
如305所示,电子设备可以将2.0版本的资源文件和1.0版本的资源文件进行比对,获取用于更新的资源文件,其中,用于更新的资源文件中的资源文件名如下:
1.btn_find_switch@1x.png;
2.btn_find_switch@2x.png;
3.btn_hfxq_gif_fail@1x.png;
4.btn_hfxq_gif_fail@2x.png。
如306所示,电子设备可以将代码差异文件和用于更新的资源文件打包成一个压缩包,该压缩包即为应用更新包。
本申请的实施例提供的用于生成应用更新包的方法和装置,通过将更新后的应用安装包中的代码文件和待更新的应用安装包中的代码文件进行差异比较,获取代码差异信息,并将代码差异信息写入代码差异文件中;通过将更新后的应用安装包中的资源文件和待更新的应用安装包中的资源文件进行比对,获取用于更新的资源文件;然后将代码差异文件和用于更新的资源文件进行压缩以生成应用更新包。应用更新包中只包括从待更新的应用安装包更新为更新后的应用安装包所需的增量文件,从而大大节省了用户下载应用更新包的所消耗的时间和流量。
进一步参考图4,其示出了用于生成应用更新包的方法的又一个实施例的流程400。该用于生成应用更新包的方法的流程400,包括以下步骤:
步骤401,获取更新后的应用安装包和待更新的应用安装包。
在本实施例中,用于生成应用更新包的方法运行于其上的电子设备(例如图1所示的服务器106)可以获取更新后的应用安装包和待更新的应用安装包。其中,更新后的应用安装包和待更新的应用安装包可以为不同版本的应用安装包。作为示例,更新后的应用安装包可以是2.0版本,待更新的应用安装包可以是1.0版本。
步骤402,将更新后的应用安装包中的代码文件和待更新的应用安装包中的代码文件进行差异比较,获取代码差异信息。
在本实施例中,基于步骤401中获取的更新后的应用安装包和待更新的应用安装包,电子设备(例如图1所示的服务器106)可以首先查找出更新后的应用安装包中的代码文件和待更新的应用安装包中的代码文件,然后将更新后的应用安装包中的代码文件和待更新的应用安装包中的代码文件进行差异比较,以获取代码差异信息。其中,应用安装包中可以包括客户端安装该应用所需的代码文件,代码文件可以是存储有代码的exe格式的二进制可执行文件,代码差异信息可以是更新后的应用安装包中的代码文件与待更新的应用安装包中的代码文件之间的区别信息。
步骤403,将代码差异信息写入代码差异文件中。
在本实施例中,基于步骤402获取的代码差异信息,电子设备(例如图1所示的服务器106)可以将代码差异信息写入代码差异文件中。其中,代码差异文件可以是文本文件。
步骤404,将更新后的应用安装包中的资源文件和待更新的应用安装包中的资源文件进行比对,获取用于更新的资源文件。
在本实施例中,基于步骤401中获取的更新后的应用安装包和待更新的应用安装包,电子设备(例如图1所示的服务器106)可以首先查找出更新后的应用安装包中的资源文件和待更新的应用安装包中的资源文件,然后将更新后的应用安装包中的资源文件和待更新的应用安装包中的资源文件进行比对,以获取用于更新的资源文件。其中,应用安装包中可以包括客户端安装该应用所需的资源文件,资源文件可以包括但不限于以下至少一项:图片、音频、视频、文本、其他可以在计算机中展示的内容。用于更新的资源文件可以是更新后的应用安装包中的资源文件中与待更新的应用安装包中的资源文件中存在区别的资源文件。
步骤405,将代码差异文件和用于更新的资源文件进行压缩,生成应用更新包。
在本实施例中,基于步骤403中的代码差异文件中和步骤404中的用于更新的资源文件,电子设备可以将代码差异文件和用于更新的资源文件打包成一个压缩包,该压缩包即为应用更新包。
步骤406,将应用更新包设置为用于灰度发布的预发布版本。
在本实施例中,基于步骤405中生成的应用更新包,电子设备(例如图1所示的服务器106)可以将应用更新包设置为用于灰度发布的预发布版本,同时还可以将用于灰度发布的预发布版本的应用更新包存储至本地或者发送至与其通信连接的数据库服务器(例如图1所示的数据库服务器107),以实现对应用更新包备份。
在本实施例中,在将应用更新包设置为用于灰度发布的预发布版本后,电子设备可以对应用更新包进行灰度发布,其灰度发布过程如下:首先,电子设备可以随机选取出一小部分安装有该应用的客户端,并将应用更新包分别发送给选取出的客户端;之后,选取出的客户端可以按照应用更新包中的代码差异文件中记录的代码差异信息对客户端上的该应用的代码文件进行修改,同时还可以将应用更新包中的用于更新的资源文件复制到客户端用于存储该应用的资源文件的文件夹中,从而使选取出的客户端上安装的该应用升级为更新后的应用;然后,电子设备可以接收选取出的客户端反馈的关于更新后的应用的意见;最后,在电子设备没有接收到关于更新后的应用的反对意见或者接收到关于更新后的应用的反对意见的比例低于预设阈值的情况下,电子设备可以将应用更新包发送给所有安装有该应用的客户端,以实现该应用的全量更新。
从图4中可以看出,与图2对应的实施例相比,本实施例中的用于生成应用更新包的方法的流程400增加了将应用更新包设置为用于灰度发布的预发布版本的步骤。由此,本实施例描述的方案中的该应用更新包采用灰度发布,从而实现了在初始灰度(即先将一小部分客户端上安装的应用升级为更新后的应用)的时候就可以发现并调整问题,以保证全量发布后该应用稳定运行。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种用于生成应用更新包的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例中的用于生成应用更新包的装置500包括:获取单元501、比较单元502、写入单元503、比对单元504和生成单元505。其中,获取单元501,配置用于获取更新后的应用安装包和待更新的应用安装包;比较单元502,配置用于将更新后的应用安装包中的代码文件和待更新的应用安装包中的代码文件进行差异比较,获取代码差异信息;写入单元503,配置用于将代码差异信息写入代码差异文件中;比对单元504,配置用于将更新后的应用安装包中的资源文件和待更新的应用安装包中的资源文件进行比对,获取用于更新的资源文件;生成单元505,配置用于将代码差异文件和用于更新的资源文件进行压缩,生成应用更新包。
在本实施例中,用于生成应用更新包的装置500中:获取单元501、比较单元502、写入单元503、比对单元504和生成单元505的具体处理及其带来的有益效果可参看图2对应实施例中的步骤201、步骤202、步骤203、步骤204和步骤205的实现方式的相关描述,在此不再赘述。
在本实施例的一些可选的实现方式中,比较单元502进一步配置用于:将更新后的应用安装包中的代码文件中的代码和待更新的应用安装包中的代码文件中的代码进行字符比对,获取从待更新的应用安装包中的代码文件中的代码更新为更新后的应用安装包中的代码文件中的代码所需新增、删除或变更的字符。
在本实施例的一些可选的实现方式中,写入单元503进一步配置用于:将所获取的新增、删除或变更的字符写入代码差异文件中。
在本实施例的一些可选的实现方式中,比对单元504进一步配置用于:遍历更新后的应用安装包中的资源文件和待更新的应用安装包中的资源文件,获取从待更新的应用安装包中的资源文件更新为更新后的应用安装包中的资源文件所需新增或变更的资源文件。
在本实施例的一些可选的实现方式中,用于生成应用更新包的装置500还包括:设置单元(图中未示出),配置用于将应用更新包设置为用于灰度发布的预发布版本。
下面参考图6,其示出了适于用来实现本申请实施例的服务器的计算机系统600的结构示意图。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的方法中限定的上述功能。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括获取单元、比较单元、写入单元、比对单元和生成单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,获取单元还可以被描述为“获取更新后的应用安装包和待更新的应用安装包的单元”。
作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当一个或者多个程序被一个设备执行时,使得设备:获取更新后的应用安装包和待更新的应用安装包;将更新后的应用安装包中的代码文件和待更新的应用安装包中的代码文件进行差异比较,获取代码差异信息;将代码差异信息写入代码差异文件中;将更新后的应用安装包中的资源文件和待更新的应用安装包中的资源文件进行比对,获取用于更新的资源文件;将代码差异文件和用于更新的资源文件进行压缩,生成应用更新包。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (10)

1.一种用于生成应用更新包的方法,其特征在于,所述方法包括:
获取更新后的应用安装包和待更新的应用安装包;
将所述更新后的应用安装包中的代码文件和所述待更新的应用安装包中的代码文件进行差异比较,获取代码差异信息;
将所述代码差异信息写入代码差异文件中;
将所述更新后的应用安装包中的资源文件和所述待更新的应用安装包中的资源文件进行比对,获取用于更新的资源文件;
将所述代码差异文件和所述用于更新的资源文件进行压缩,生成应用更新包。
2.根据权利要求1所述的方法,其特征在于,所述将所述更新后的应用安装包中的代码文件和所述待更新的应用安装包中的代码文件进行差异比较,获取代码差异信息,包括:
将所述更新后的应用安装包中的代码文件中的代码和所述待更新的应用安装包中的代码文件中的代码进行字符比对,获取从所述待更新的应用安装包中的代码文件中的代码更新为所述更新后的应用安装包中的代码文件中的代码所需新增、删除或变更的字符。
3.根据权利要求2所述的方法,其特征在于,所述将所述代码差异信息写入代码差异文件中,包括:
将所获取的新增、删除或变更的字符写入所述代码差异文件中。
4.根据权利要求1所述的方法,其特征在于,所述将所述更新后的应用安装包中的资源文件和所述待更新的应用安装包中的资源文件进行比对,获取用于更新的资源文件,包括:
遍历所述更新后的应用安装包中的资源文件和所述待更新的应用安装包中的资源文件,获取从所述待更新的应用安装包中的资源文件更新为所述更新后的应用安装包中的资源文件所需新增或变更的资源文件。
5.根据权利要求1-4之一所述的方法,其特征在于,所述方法还包括:
将所述应用更新包设置为用于灰度发布的预发布版本。
6.一种用于生成更新包的装置,其特征在于,所述装置包括:
获取单元,配置用于获取更新后的应用安装包和待更新的应用安装包;
比较单元,配置用于将所述更新后的应用安装包中的代码文件和所述待更新的应用安装包中的代码文件进行差异比较,获取代码差异信息;
写入单元,配置用于将所述代码差异信息写入代码差异文件中;
比对单元,配置用于将所述更新后的应用安装包中的资源文件和所述待更新的应用安装包中的资源文件进行比对,获取用于更新的资源文件;
生成单元,配置用于将所述代码差异文件和所述用于更新的资源文件进行压缩,生成应用更新包。
7.根据权利要求6所述的装置,其特征在于,所述比较单元进一步配置用于:
将所述更新后的应用安装包中的代码文件中的代码和所述待更新的应用安装包中的代码文件中的代码进行字符比对,获取从所述待更新的应用安装包中的代码文件中的代码更新为所述更新后的应用安装包中的代码文件中的代码所需新增、删除或变更的字符。
8.根据权利要求7所述的装置,其特征在于,所述写入单元进一步配置用于:
将所获取的新增、删除或变更的字符写入所述代码差异文件中。
9.根据权利要求6所述的装置,其特征在于,所述比对单元进一步配置用于:
遍历所述更新后的应用安装包中的资源文件和所述待更新的应用安装包中的资源文件,获取从所述待更新的应用安装包中的资源文件更新为所述更新后的应用安装包中的资源文件所需新增或变更的资源文件。
10.根据权利要求6-9之一所述的装置,其特征在于,所述装置还包括:
设置单元,配置用于将所述应用更新包设置为用于灰度发布的预发布版本。
CN201710046063.4A 2017-01-22 2017-01-22 用于生成应用更新包的方法和装置 Pending CN106919382A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710046063.4A CN106919382A (zh) 2017-01-22 2017-01-22 用于生成应用更新包的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710046063.4A CN106919382A (zh) 2017-01-22 2017-01-22 用于生成应用更新包的方法和装置

Publications (1)

Publication Number Publication Date
CN106919382A true CN106919382A (zh) 2017-07-04

Family

ID=59453414

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710046063.4A Pending CN106919382A (zh) 2017-01-22 2017-01-22 用于生成应用更新包的方法和装置

Country Status (1)

Country Link
CN (1) CN106919382A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107205057A (zh) * 2017-08-02 2017-09-26 无锡江南影视传播有限公司 一种游戏资源更新方法、装置及客户端
CN107577491A (zh) * 2017-08-09 2018-01-12 时趣互动(北京)科技有限公司 一种基于Weex的移动应用内版本更新的方法、系统
CN110069273A (zh) * 2019-04-30 2019-07-30 四川长虹教育科技有限公司 软件升级包的批量打包方法及装置
CN110231947A (zh) * 2019-05-21 2019-09-13 深圳壹账通智能科技有限公司 一种应用程序的插件更新方法、设备、服务器及存储介质
CN112100479A (zh) * 2020-09-14 2020-12-18 深圳市欢太科技有限公司 应用访问方法、装置、电子设备及存储介质
CN112286555A (zh) * 2020-10-30 2021-01-29 上海淇玥信息技术有限公司 一种应用部署升级方法、装置和电子设备
CN112925553A (zh) * 2021-03-18 2021-06-08 上海创功通讯技术有限公司 一种嵌入式设备的系统升级方法及装置
CN112988193A (zh) * 2021-03-26 2021-06-18 深圳壹账通创配科技有限公司 代码更新识别方法、装置、计算机设备及可读存储介质
CN114707123A (zh) * 2022-04-22 2022-07-05 北京时代亿信科技股份有限公司 软件安装包的验证方法及装置、非易失性存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103955363A (zh) * 2014-04-08 2014-07-30 国云科技股份有限公司 一种程序升级安装包的制作方法
CN104391728A (zh) * 2014-12-12 2015-03-04 北京奇虎科技有限公司 软件升级差量包获取方法和相应的升级方法以及装置
CN106020882A (zh) * 2016-05-18 2016-10-12 青岛海信电器股份有限公司 一种应用升级方法、智能终端及升级系统
CN106293793A (zh) * 2015-06-02 2017-01-04 西安中兴新软件有限责任公司 一种终端的软件升级方法、装置和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103955363A (zh) * 2014-04-08 2014-07-30 国云科技股份有限公司 一种程序升级安装包的制作方法
CN104391728A (zh) * 2014-12-12 2015-03-04 北京奇虎科技有限公司 软件升级差量包获取方法和相应的升级方法以及装置
CN106293793A (zh) * 2015-06-02 2017-01-04 西安中兴新软件有限责任公司 一种终端的软件升级方法、装置和系统
CN106020882A (zh) * 2016-05-18 2016-10-12 青岛海信电器股份有限公司 一种应用升级方法、智能终端及升级系统

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107205057A (zh) * 2017-08-02 2017-09-26 无锡江南影视传播有限公司 一种游戏资源更新方法、装置及客户端
CN107577491A (zh) * 2017-08-09 2018-01-12 时趣互动(北京)科技有限公司 一种基于Weex的移动应用内版本更新的方法、系统
CN107577491B (zh) * 2017-08-09 2021-05-11 时趣互动(北京)科技有限公司 一种基于Weex的移动应用内版本更新的方法、系统
CN110069273A (zh) * 2019-04-30 2019-07-30 四川长虹教育科技有限公司 软件升级包的批量打包方法及装置
CN110231947A (zh) * 2019-05-21 2019-09-13 深圳壹账通智能科技有限公司 一种应用程序的插件更新方法、设备、服务器及存储介质
WO2020233045A1 (zh) * 2019-05-21 2020-11-26 深圳壹账通智能科技有限公司 一种插件更新方法、设备、服务器及计算机可读存储介质
CN112100479A (zh) * 2020-09-14 2020-12-18 深圳市欢太科技有限公司 应用访问方法、装置、电子设备及存储介质
CN112286555A (zh) * 2020-10-30 2021-01-29 上海淇玥信息技术有限公司 一种应用部署升级方法、装置和电子设备
CN112925553A (zh) * 2021-03-18 2021-06-08 上海创功通讯技术有限公司 一种嵌入式设备的系统升级方法及装置
CN112988193A (zh) * 2021-03-26 2021-06-18 深圳壹账通创配科技有限公司 代码更新识别方法、装置、计算机设备及可读存储介质
CN114707123A (zh) * 2022-04-22 2022-07-05 北京时代亿信科技股份有限公司 软件安装包的验证方法及装置、非易失性存储介质

Similar Documents

Publication Publication Date Title
CN106919382A (zh) 用于生成应用更新包的方法和装置
CN106648712A (zh) 增量更新包的生成方法、装置和服务器
CN105653933B (zh) 插件加载方法及装置
CN106603311A (zh) Ota升级方法、客户端、服务器和系统
CN106886375A (zh) 存储数据的方法和装置
CN106980508A (zh) 用于生成页面的方法和装置
CN102148852A (zh) 字体子集的动态流式传输
CN103064666A (zh) 一种多渠道软件发布方法和系统
CN103019708A (zh) 用于发布软件的方法和系统
CN109976793B (zh) 一种应用程序的运行方法、装置、设备和介质
US20080288471A1 (en) Apparatus and method for providing a data marketplace
CN107402788A (zh) 资源打包管理方法与装置
CN107193607A (zh) 用于更新代码文件的方法和装置、存储介质、处理器以及终端
WO2015172451A1 (zh) 一种软件升级方法、服务器及终端
CN105739968A (zh) 基于分布式版本控制系统Git的更新内容的评审方法和装置
CN107291759A (zh) 浏览器页面资源的处理方法和装置
CN107797820A (zh) 用于生成补丁的方法和装置
CN108874409A (zh) 一种信息更新方法、装置、服务器及系统
CN104052769B (zh) 一种对移动终端应用包含的资源更新的方法、装置和系统
CN108089870A (zh) 用于修复应用的方法和装置
US20140157144A1 (en) Network system
CN107592334A (zh) 一种信息推广方法、装置及设备
CN107463406A (zh) 发布移动应用的方法和电子设备
CN106776638A (zh) 数据库操作方法和装置
CN110119386A (zh) 数据处理方法、数据处理装置、介质和计算设备

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

Application publication date: 20170704

RJ01 Rejection of invention patent application after publication