CN106775845A - 一种软件安装升级的方法 - Google Patents
一种软件安装升级的方法 Download PDFInfo
- Publication number
- CN106775845A CN106775845A CN201611084766.8A CN201611084766A CN106775845A CN 106775845 A CN106775845 A CN 106775845A CN 201611084766 A CN201611084766 A CN 201611084766A CN 106775845 A CN106775845 A CN 106775845A
- Authority
- CN
- China
- Prior art keywords
- installation
- application
- equipment
- software
- component
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种软件安装升级的方法,由于主要包括:收集设备上已经安装的应用信息,服务器根据设备上已经安装的应用清单,以及要安装的应用计算出升级包,根据差异安装包和设备上现有应用合并出安装/升级包,最终安装升级应用;从而可以克服现有技术中流量节省作用有限,无法节省软件首次安装时的流量占用,从而大大减少软件首次安装以及软件升级时的网络流量。
Description
技术领域
本发明涉及无线通讯技术领域,具体地,涉及一种软件安装升级的方法。
背景技术
安卓智能设备安装的各种软件,是通过应用商店、浏览器或PC上的助手下载、安装的。最早先的实现,无论是软件的新装还是升级,软件安装包必须完整下载。此方式对手机流量消耗较大,对服务器网络带宽资源占用也较大。
目前普遍存在增量升级手段。比如CN 102707977 A、CN 103095838 B。这些手段在软件升级时,仅需下载新版和旧版之间的差异部分。安卓设备收到差异数据包后,根据这些差异数据以及设备上的旧安装包即可合并出新版安装包。大大减少了软件升级时的流量费用。
现有的软件增量升级方式,由于只利用了软件前一版本的信息,没有利用设备上安装的其他软件信息。流量节省作用有限,无法节省软件首次安装时的流量占用。
CN 102707977A,CN103095838B,CN105740016A,CN104991791A和CN 105657191与本发明相比,本发明利用其他软件内组件信息,进一步缩小软件增量升级包大小。
发明内容
本发明的目的在于,针对上述问题,提出一种软件安装升级的方法,以实现大大减少软件首次安装以及软件升级时的网络流量的优点。
为实现上述目的,本发明采用的技术方案是:一种软件安装升级的方法,主要包括以下步骤:
步骤1:当:设备需要安装或者升级应用时,安装或升级程序不直接向服务器请求应用安装包,首先收集设备上安装的应用清单,并计算每个应用的SHA1值;
步骤2:收集完成后,安装或升级程序向服务器发送安装或升级请求;
步骤3:服务器收到安装或升级请求后,根据设备上已经安装的应用清单,以及要安装或升级的应用,计算出增量安装包或升级包;
步骤4:根据差异安装包和设备上现有应用合并出安装包或升级包,得到全量安装包;
步骤5:安装最终得到的全量安装包。
进一步地,步骤2中,请求内容包括操作系统版本、设备上已经安装的所有应用的清单,每个应用的SHA1值和需要安装或升级的应用信息。
进一步地,步骤3中具体为,服务器收到安装/升级请求后,利用服务器内的应用包含的组件版本数据库信息,计算增量安装包,具体包括,
当某一安装组件在设备上的所有已安装应用内均不存在或某一安装组件在设备上已安装的应用内存在,但它的SHA1值与所有已安装应用内同名组件的SHA1值均不同,则不修改MAINFEST.MF文件内对应的组件描述信息,也不从最终安装包中剔除组件信息;
当某一安装组件在设备上已安装的应用内存在,且SHA1值也相同的组件,从安装包中剔除该组件,并修改MAINFEST.MF文件内容,将对应组件的路径信息前添加设备上存在该组件的应用名称。
进一步地,步骤4具体为,设备收到增量安装/升级安装包后,分析MAINFEST.MF文件中的内容,发现组件路径上带有应用信息时,从设备上已经安装的应用中提取组件内容,并将这段内容合并进入增量安装/升级包,当所有的安装组件都在设备上已安装的应用内存在,且可以找到SHA1值也相同,则都提取并合并进入安装/升级包,最终得到对应软件的全量安装包。
本发明各实施例的一种软件安装升级的方法,由于主要包括:收集设备上已经安装的应用信息,服务器根据设备上已经安装的应用清单,以及要安装的应用计算出升级包,根据差异安装包和设备上现有应用合并出安装/升级包,最终安装升级应用;从而可以克服现有技术中流量节省作用有限,无法节省软件首次安装时的流量占用,从而大大减少软件首次安装以及软件升级时的网络流量。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例所述的软件安装升级的方法流程图;
图2为安卓设备每个应用的组件组成结构图;
图3为设备上安装新应用时,设备上原本不存在的组件被下载,其他组件从其他应用提取的示意图;
图4为设备上的应用升级示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
安卓设备通常不会仅安装一个应用。如图2安卓设备往往安装了多个应用,每个应用由多个组件构成,通常,它会安装多个应用。而每个应用通常不会仅有一个组件,绝大多数情况每个应用由多个组件构成。安卓设备、应用、组件分别都会具有自身的版本信息。相同设备版本下的相同应用版本、相同组件版本的内容相同。
不同应用有不同的版本表达方法,比如有些应用使用“ver 1.2.3”,另一些应用使用“周年庆典版”等词汇。为了便于处理,升级程序并不使用软件自己标记的版本信息,而使用软件的SHA1值作为它的版本信息。SHAl算法即安全哈希算法(Secure Hash Algorithm)。对于任意长度的输入消息,SHAl会产生一个160位的消息摘要。原始数据的任何微小变化都会让SHA1的输出值明显变化。需要注意的是,虽然本发明中采用SHA1算法作为软件版本的标记手段,换用与SHA1类似的SHA2、MD5等算法并不影响本升级方法的实质。
软件安装包内组件及组件版本信息的提取方法是:解压该安装包,读取安装包内META-INF目录下的MANIFEST.MF文件中描述的每个组件的SHA1摘要信息。
结合图,1,安装升级步骤:
步骤1:当安卓设备需要安装一个应用或者升级一个应用时。安装升级程序并不直接向服务器索要应用安装包。而首先收集设备上安装的应用清单,并计算每个应用的SHA1值。
步骤2:收集完成后,升级程序向服务器发送升级请求,请求内容包含:
操作系统版本
设备上已经安装的所有应用的清单,每个应用的SHA1值。
需要安装或升级的应用。
步骤3:服务器收到安装/升级请求后。利用服务器内的应用包含的组件版本数据库信息。计算增量安装包。需要被安装/升级的应用软件的组件,必在下列三种情况之内
A、某一安装组件在设备上的所有已安装应用内均不存在;
B、某一安装组件在设备上已安装的应用内存在,但它的SHA1值与所有已安装应用内同名组件的SHA1值均不同。
C、某一安装组件在设备上已安装的应用内存在,且可以找到SHA1值也相同的组件。
如果组件的情况为A或者B,则不修改MAINFEST.MF文件内对应的组件描述信息,也不从最终安装包中剔除组件信息。对于情况为C的组件,从安装包中剔除该组件,并修改MAINFEST.MF文件内容,将对应组件的路径信息前添加设备上存在该组件的应用名称。
通过步骤3可得到增量安装/升级安装包。
步骤4:安卓设备收到增量安装/升级安装包后,分析MAINFEST.MF文件中的内容。发现组件路径上带有应用信息时,则从设备上已经安装的应用中提取组件内容。并将这段内容合并进入增量安装/升级包。当所有的情况为C的组件都提取并合并进入安装/升级包之后。则得到对应软件的全量安装包。
步骤5:安装最终得到的全量安装包。即可完成软件的安装/升级。
图3中,设备上安装新应用时,只有设备上原本不存在的组件被下载。其他组件从其他应用提取;
图4中,设备上的应用升级,也仅是设备上不存在的组件被下载,其余组件从本机其他应用获得。通常应用的前一个版本具有最多的可复用组件。
至少可以达到以下有益效果:
1:企业内部的安卓应用发布,由于同一个企业往往采用相同的技术结构和应用程序框架。所以不同应用之间的组件重复率很高。本发明可大大减少企业多个应用发布时的网络带宽占用。
2:安卓应用商店,由于安卓应用的生态系统日趋成熟,不同安卓应用逐渐开始同质,绝大部分应用均采用相同的优秀组件。比如PhoneGap,Unity3D,WebKit,jQuery,Xamaria这几个组件几乎覆盖所有安卓应用。跨应用提取重复组件的手段可大大减少网络流量。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种软件安装升级的方法,其特征在于,包括以下步骤:
步骤1:设备需要安装或者升级应用时,安装或升级程序不直接向服务器请求应用安装包,首先收集设备上安装的应用清单,并计算每个应用的SHA1值;
步骤2:收集完成后,安装或升级程序向服务器发送安装或升级请求;
步骤3:服务器收到安装或升级请求后,根据设备上已经安装的应用清单,以及要安装或升级的应用,计算出增量安装包或升级包;
步骤4:根据差异安装包和设备上现有应用合并出安装包或升级包,得到全量安装包;
步骤5:安装最终得到的全量安装包。
2.根据权利要求1所述的软件安装升级的方法,其特征在于,步骤2中,请求内容包括操作系统版本、设备上已经安装的所有应用的清单,每个应用的SHA1值和需要安装或升级的应用信息。
3.根据权利要求2所述的软件安装升级的方法,其特征在于,步骤3中具体为,服务器收到安装/升级请求后,利用服务器内的应用包含的组件版本数据库信息,计算增量安装包,具体包括,
当某一安装组件在设备上的所有已安装应用内均不存在或某一安装组件在设备上已安装的应用内存在,但它的SHA1值与所有已安装应用内同名组件的SHA1值均不同,则不修改MAINFEST.MF文件内对应的组件描述信息,也不从最终安装包中剔除组件信息;
当某一安装组件在设备上已安装的应用内存在,且SHA1值也相同的组件,从安装包中剔除该组件,并修改MAINFEST.MF文件内容,将对应组件的路径信息前添加设备上存在该组件的应用名称。
4.根据权利要求3所述的软件安装升级的方法,其特征在于,步骤4具体为,设备收到增量安装/升级安装包后,分析MAINFEST.MF文件中的内容,发现组件路径上带有应用信息时,从设备上已经安装的应用中提取组件内容,并将这段内容合并进入增量安装/升级包,当所有的安装组件都在设备上已安装的应用内存在,且可以找到SHA1值也相同,则都提取并合并进入安装/升级包,最终得到对应软件的全量安装包。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201611084766.8A CN106775845A (zh) | 2016-11-30 | 2016-11-30 | 一种软件安装升级的方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201611084766.8A CN106775845A (zh) | 2016-11-30 | 2016-11-30 | 一种软件安装升级的方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN106775845A true CN106775845A (zh) | 2017-05-31 |
Family
ID=58914752
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201611084766.8A Pending CN106775845A (zh) | 2016-11-30 | 2016-11-30 | 一种软件安装升级的方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN106775845A (zh) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108170465A (zh) * | 2018-01-04 | 2018-06-15 | 武汉斗鱼网络科技有限公司 | 一种版本信息管理方法、电子设备及可读存储介质 |
| CN110673875A (zh) * | 2019-09-19 | 2020-01-10 | 杭州安恒信息技术股份有限公司 | 安全的软件全量打包及安装方法 |
| WO2024199039A1 (zh) * | 2023-03-28 | 2024-10-03 | 杭州海康威视数字技术股份有限公司 | 应用安装方法、装置、电子设备及机器可读存储介质 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050071839A1 (en) * | 2003-09-25 | 2005-03-31 | Curitel Communications, Inc. | Communication terminal and communication network for partially updating software, software update method, and software creation device and method therefor |
| CN102707977A (zh) * | 2012-05-17 | 2012-10-03 | 江苏中科梦兰电子科技有限公司 | 一种基于Android应用软件的增量升级方法 |
| CN103095838A (zh) * | 2013-01-16 | 2013-05-08 | 福州博远无线网络科技有限公司 | 一种通过下载增量升级包来升级安卓智能手机软件的方法 |
| CN104426924A (zh) * | 2013-08-21 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 一种更新应用软件的方法、装置、客户端、服务器及系统 |
| CN104539676A (zh) * | 2014-12-18 | 2015-04-22 | 深圳市腾讯计算机系统有限公司 | 提供、获取应用安装包的方法、装置和系统 |
-
2016
- 2016-11-30 CN CN201611084766.8A patent/CN106775845A/zh active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050071839A1 (en) * | 2003-09-25 | 2005-03-31 | Curitel Communications, Inc. | Communication terminal and communication network for partially updating software, software update method, and software creation device and method therefor |
| CN102707977A (zh) * | 2012-05-17 | 2012-10-03 | 江苏中科梦兰电子科技有限公司 | 一种基于Android应用软件的增量升级方法 |
| CN103095838A (zh) * | 2013-01-16 | 2013-05-08 | 福州博远无线网络科技有限公司 | 一种通过下载增量升级包来升级安卓智能手机软件的方法 |
| CN104426924A (zh) * | 2013-08-21 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 一种更新应用软件的方法、装置、客户端、服务器及系统 |
| CN104539676A (zh) * | 2014-12-18 | 2015-04-22 | 深圳市腾讯计算机系统有限公司 | 提供、获取应用安装包的方法、装置和系统 |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108170465A (zh) * | 2018-01-04 | 2018-06-15 | 武汉斗鱼网络科技有限公司 | 一种版本信息管理方法、电子设备及可读存储介质 |
| CN110673875A (zh) * | 2019-09-19 | 2020-01-10 | 杭州安恒信息技术股份有限公司 | 安全的软件全量打包及安装方法 |
| WO2024199039A1 (zh) * | 2023-03-28 | 2024-10-03 | 杭州海康威视数字技术股份有限公司 | 应用安装方法、装置、电子设备及机器可读存储介质 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN103095838B (zh) | 一种通过下载增量升级包来升级安卓智能手机软件的方法 | |
| CN103442026B (zh) | 一种应用程序处理方法、装置和系统 | |
| CN104615466B (zh) | 一种云平台部署方法和系统 | |
| CN106603311A (zh) | Ota升级方法、客户端、服务器和系统 | |
| CN105573790A (zh) | 一种车载系统软件升级方法、车载系统及软件服务器 | |
| CN104346167A (zh) | 生成应用渠道包的方法及装置 | |
| CN103701930A (zh) | 一种移动应用程序的实时更新方法及系统 | |
| CN104699511B (zh) | 插件升级方法及装置 | |
| CN108491236A (zh) | 一种插件加载方法、装置及计算机可读存储介质 | |
| CN106201577B (zh) | 一种更新Lua文件的方法及装置 | |
| CN102520948A (zh) | 应用程序维护更新方法和装置 | |
| CN109284106A (zh) | 业务规则的发布管理方法、电子装置及可读存储介质 | |
| CN105763626A (zh) | 适用于应用客户端支付的sdk初始化方法 | |
| CN102833350A (zh) | WebApp更新的处理方法和处理装置 | |
| JP2011516987A (ja) | モバイル・デバイス・ソフトウェアの管理方法及び装置 | |
| CN106535221A (zh) | 一种资源管理方法、装置及多模软基站统一网管 | |
| US20170262263A1 (en) | Process and system for the generation of an operating program in the form of a mobile application that is capable of operating on a mobile device | |
| CN106775845A (zh) | 一种软件安装升级的方法 | |
| CN106210827B (zh) | 一种动态配置机顶盒多ca的方法及系统 | |
| KR101198583B1 (ko) | 메타데이터를 이용한 멀티미디어 미들웨어 장치와 그 관리방법 및 기록 매체 | |
| CN114115969A (zh) | 一种基于React Native的热更新方法及系统 | |
| WO2019043462A1 (en) | SYSTEMS AND METHODS FOR CREATING AUTOMATED INTERFACE TRANSMISSION BETWEEN HETEROGENEOUS SYSTEMS IN A BUSINESS ECOSYSTEM | |
| CN100421072C (zh) | 实现软件升级的方法 | |
| CN106557348A (zh) | 视图展示方法和装置 | |
| CN107025119A (zh) | 一种Android智能终端系统软件热修复的方法 |
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: 20170531 |
|
| RJ01 | Rejection of invention patent application after publication |