CN106155742A - 组件更新处理方法及装置 - Google Patents
组件更新处理方法及装置 Download PDFInfo
- Publication number
- CN106155742A CN106155742A CN201610512400.XA CN201610512400A CN106155742A CN 106155742 A CN106155742 A CN 106155742A CN 201610512400 A CN201610512400 A CN 201610512400A CN 106155742 A CN106155742 A CN 106155742A
- Authority
- CN
- China
- Prior art keywords
- bag
- renewal
- assembly
- version number
- new
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种组件更新处理方法及装置,其中所述方法包括:当应用中的组件被打开之后,确定所述组件能够进行热更新;当所述组件需要更新时,从组件服务器中获取新更新包的下载地址;根据所述下载地址,下载所述组件的所述新更新包;采用所述新更新包更新所述组件。通过采用上述本发明的技术方案,可以实现对App中插入的组件进行热更新,克服现有技术中传统App和设置在其上的O2O业务的生态组件的经常存在发版计划不匹配的技术问题,使得组件的更新不用等待APP的更新便可以实现热更新,能够有效地提高组件的更新效率,能够有效地增强对组件的独立管理能力。
Description
【技术领域】
本发明涉及一种应用处理技术领域,尤其涉及一种组件更新处理方法及装置。
【背景技术】
随着科技的迅猛发展,各种各样功能的应用(Application;App)的出现,大大地方便了人们的生活。
随着近年来线上到线下(Online To Offline;O2O)运营模式的出现,由于O2O业务的实时性等特性,O2O的生态组件的产品形态亦为“小步快跑,快速试错”。且现有的很多O2O的生态组件通过设置在一些传统的应用如地图、搜索等App上。传统的App有其自身的版本计划,通常发版周期比较长;而O2O业务的生态组件有其自身的实时性等特性,通常需要更新频率较高,因此需要发版周期比较短。
因此,现有技术中,传统App和设置在其上的O2O业务的生态组件的经常存在发版计划不匹配的技术问题,导致O2O业务的生态组件的更新必须要等到传统App更新的时候才能实现更新,导致传统App上设置的O2O业务的生态组件的更新效率较低。
【发明内容】
本发明提供了一种组件更新处理方法及装置,用于提高App中的组件的更新效率。
本发明提供一种组件更新处理方法,所述方法包括:
当应用中的组件被打开之后,确定所述组件能够进行热更新;
当所述组件需要更新时,从组件服务器中获取新更新包的下载地址;
根据所述下载地址,下载所述组件的所述新更新包;
采用所述新更新包更新所述组件。
进一步可选地,如上所述的方法中,当所述组件需要更新时,从组件服务器中获取新更新包的下载地址,具体包括:
向所述组件服务器发送携带本地更新包版本号的更新请求;
接收所述组件服务器发送的携带更新标识位的更新响应消息;所述更新标识位为所述组件服务器根据所述本地更新包的版本号和最新的更新包的版本号确定的;
根据所述更新响应消息中的所述更新标识位,确定所述组件需要下载所述新更新包进行更新;
从所述更新响应消息中获取所述新更新包的下载地址;
进一步地,所述方法还包括:
当根据所述更新响应消息中的所述更新标识位,确定所述组件不需要下载所述新更新包进行更新,进一步从所述更新响应消息中获取下载标识位;
根据所述下载标识位确定已下载最新的更新包。
进一步可选地,如上所述的方法中,根据所述下载地址,下载所述组件的所述新更新包,具体包括:
根据所述下载地址向文件服务器发送携带白名单标识的更新包下载请求,以供所述文件服务器根据所述白名单标识检测所述更新包下载请求为合法请求;
接收所述文件服务器发送的、采用第一加密算法对所述新更新包进行加密后的第一文件和采用第二加密算法对所述新更新包的第一信息摘要值进行加密后的第二文件;
采用所述第一加密算法对应的解密算法对所述第一文件解密;
获取所述第一文件解密后的文件的第二信息摘要值;
采用所述第二加密算法对应的解密算法对所述第二文件进行解密,得到第三信息摘要值;
将所述第二信息摘要值和所述第三信息摘要值进行比对,当两者一致时,确定采用所述第一加密算法对应的解密算法对所述第一文件解密后的文件为所述新更新包。
进一步可选地,如上所述的方法中,根据所述下载地址向文件服务器发送携带白名单标识的更新包下载请求,具体包括:
将所述白名单标识携带在所述更新包下载请求的头文件中;
采用超文本传输协议向所述下载地址对应的所述文件服务器发送所述更新包下载请求。
进一步可选地,如上所述的方法中,还包括:
在采用所述新更新包更新所述组件过程中,更新崩溃退出时,记录崩溃标识位;
进一步地,在采用所述新更新包更新所述组件过程中,更新崩溃退出时,记录崩溃标识位,具体包括:在采用所述新更新包更新所述组件过程中,更新崩溃退出时,将崩溃时运行的所述新更新包的对应的函数的退出标识更新为非正常退出的标识。
进一步可选地,如上所述的方法中,采用所述新更新包更新所述组件之后,还包括:
删除本地的旧更新包,存储所述新更新包以及所述更新包的版本号。
进一步可选地,如上所述的方法中,确定所述组件能够进行热更新,具体包括:
根据基线接口标识位确定所述应用允许所述组件进行热更新。
进一步可选地,如上所述的方法中,根据基线接口标识位确定所述应用允许所述组件进行热更新之后,当所述组件需要更新时,从组件服务器中获取新更新包的下载地址之前,还包括:
检测当前运行的应用的版本号、组件的版本号以及更新包的版本号是否分别均与本地存储的应用的版本号、组件的版本号以及更新包的版本号一致;
当不一致时,删除本地的更新包;
进一步地,当运行的所述应用的版本号、所述组件的版本号以及所述更新包的版本号是否分别均与本地存储的所述应用的版本号、所述组件的版本号以及所述更新包的版本号一致时,所述方法还包括:
检测本地存储的所述更新包是否存在崩溃标识位;当本地存储的更新包存在所述崩溃标识位,不加载本地的存储的更新包;
进一步地,当本地存储的所述更新包不存在所述崩溃标识位时,检测并确定控制加载本地标识位标识的为所述组件服务器允许所述组件加载更新包。
本发明还提供一种组件更新处理装置,所述装置包括:
确定模块,用于当应用中的组件被打开之后,确定所述组件能够进行热更新;
获取模块,用于当所述组件需要更新时,从组件服务器中获取新更新包的下载地址;
下载模块,用于根据所述下载地址,下载所述组件的所述新更新包;
更新模块,用于采用所述新更新包更新所述组件。
进一步可选地,如上所述的装置中,所述获取模块,具体用于:
向所述组件服务器发送携带本地更新包版本号的更新请求;
接收所述组件服务器发送的携带更新标识位的更新响应消息;所述更新标识位为所述组件服务器根据所述本地更新包的版本号和最新的更新包的版本号确定的;
根据所述更新响应消息中的所述更新标识位,确定所述组件需要下载所述新更新包进行更新下载标识位;
从所述更新响应消息中获取所述新更新包的下载地址;
进一步地,所述获取模块,还用于当根据所述更新响应消息中的所述更新标识位,确定所述组件不需要下载所述新更新包进行更新,进一步从所述更新响应消息中获取下载标识位;
所述确定模块,还用于根据所述下载标识位确定已下载最新的更新包。
进一步可选地,如上所述的装置中,所述下载模块,具体用于:
根据所述下载地址向文件服务器发送携带白名单标识的更新包下载请求,以供所述文件服务器根据所述白名单标识检测所述更新包下载请求为合法请求;
接收所述文件服务器发送的、采用第一加密算法对所述新更新包进行加密后的第一文件和采用第二加密算法对所述新更新包的第一信息摘要值进行加密后的第二文件;
采用所述第一加密算法对应的解密算法对所述第一文件解密;
获取所述第一文件解密后的文件的第二信息摘要值;
采用所述第二加密算法对应的解密算法对所述第二文件进行解密,得到第三信息摘要值;
将所述第二信息摘要值和所述第三信息摘要值进行比对,当两者一致时,确定采用所述第一加密算法对应的解密算法对所述第一文件解密后的文件为所述新更新包。
进一步可选地,如上所述的装置中,所述下载模块,具体还用于:
将所述白名单标识携带在所述更新包下载请求的头文件中;
采用超文本传输协议向所述下载地址对应的所述文件服务器发送所述更新包下载请求。
进一步可选地,如上所述的装置中,还包括:
记录模块,用于在采用所述新更新包更新所述组件过程中,更新崩溃退出时,记录崩溃标识位;
进一步地,所述记录模块,具体用于在采用所述新更新包更新所述组件过程中,更新崩溃退出时,将崩溃时运行的所述新更新包的对应的函数的退出标识更新为非正常退出的标识。
进一步可选地,如上所述的装置中,所述更新模块,还用于删除本地的旧更新包,存储所述新更新包以及所述更新包的版本号。
进一步可选地,如上所述的装置中,所述确定模块,具体用于根据基线接口标识位确定所述应用允许所述组件进行热更新。
进一步可选地,如上所述的装置中,还包括:
检测模块,用于检测当前运行的应用的版本号、组件的版本号以及更新包的版本号是否分别均与本地存储的应用的版本号、组件的版本号以及更新包的版本号一致;
处理模块,用于当所述检测模块确定不一致时,删除本地的更新包;
进一步地,所述检测模块,还用于当确定运行的所述应用的版本号、所述组件的版本号以及所述更新包的版本号是否分别均与本地存储的所述应用的版本号、所述组件的版本号以及所述更新包的版本号一致时,进一步检测本地存储的所述更新包是否存在崩溃标识位;
所述处理模块,还用于当本地存储的更新包存在所述崩溃标识位,不加载本地的存储的更新包。
所述检测模块,还用于当本地存储的所述更新包不存在所述崩溃标识位时,检测并确定控制加载本地标识位标识的为所述组件服务器允许所述组件加载更新包。
本发明的组件更新处理方法及装置,通过采用上述方案,可以实现对App中插入的组件进行热更新,克服现有技术中传统App和设置在其上的O2O业务的生态组件的经常存在发版计划不匹配的技术问题,使得组件的更新不用等待APP的更新便可以实现热更新,能够有效地提高组件的更新效率,能够有效地增强对组件的独立管理能力。
【附图说明】
图1为本发明的组件更新处理方法实施例的流程图。
图2为本实施例的组件更新处理过程中的代码示例。
图3为本发明的组件更新处理装置实施例一的结构图。
图4为本发明的组件更新处理装置实施例二的结构图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
图1为本发明的组件更新处理方法实施例的流程图。如图1所示,本实施例的组件更新处理方法,具体可以包括如下步骤:
100、当App中的组件被打开之后,确定组件能够进行热更新;
101、当组件需要更新时,从组件服务器中获取新更新包的下载地址;
102、根据下载地址,下载组件的新更新包;
103、采用新更新包更新组件。
本实施例的应用场景为在传统的App中插入有组件,例如该App为地图、搜索等App,该组件可以为插入在该App中的酒店业务组件等等。在该App中打开该组件之后,可以先确定该组件是否能够进行热更新,即在App不更新的前提下,单独更新插入在该App中的组件。当确定该组件可以更新时,可以从组件服务器获取新更新包的下载地址,然后根据下载地址下载组件的新更新包,并采用新更新包更新该组件。
本实施例的组件更新处理方法的执行主体可以为组件更新处理装置,该组件更新处理装置也可以设置在组件一侧,在App中的组件被打开时,可以采用本实施例的上述技术方案,实现对App中的组件进行热更新处理。
本实施例的组件更新处理方法,通过采用上述方案,可以实现对App中插入的组件进行热更新,克服现有技术中传统App和设置在其上的O2O业务的生态组件的经常存在发版计划不匹配的技术问题,使得组件的更新不用等待APP的更新便可以实现热更新,能够有效地提高组件的更新效率,能够有效地增强对组件的独立管理能力。
例如,本实施例的步骤100,具体包括:根据基线接口标识位确定App允许组件进行热更新。也就是说,在App中可以设置有基线接口标识位,通过该基线接口标识位来标识App是否允许该组件进行热更新,例如可以设置基线接口标识位为0,标识该App不允许该组件进行热更新。设置基线标识位为1,标识该App允许该组件进行热更新。例如,基线在ComEntity基类里可以提供基线接口标识位。以根据基线接口标识位判断组件是否加载JSPatch,组件在内部加载JSPatch之前要进行判断。
进一步可选地,本实施例的步骤101,具体可以包括如下步骤:
(a1)向组件服务器发送携带本地更新包版本号的更新请求;
(a2)接收组件服务器发送的携带更新标识位的更新响应消息;
更新标识位为组件服务器根据本地更新包的版本号和最新的更新包的版本号确定的;
(a3)根据更新响应消息中的更新标识位,确定组件需要下载新更新包进行更新;
(a4)从更新响应消息中获取新更新包的下载地址。
而当根据更新响应消息中的更新标识位,确定组件不需要下载新更新包进行更新,进一步从更新响应消息中获取下载标识位;并根据下载标识位确定已下载最新的更新包。
其中更新标识位可以采用isUpgrade字段来标识,下载标识位可以采用isLoad字段来表示。
本实施例中的新更新包可以存储在组件服务器中,当确定组件能够进行热更新时,该组件更新处理装置先向组件服务器发送携带本地更新包版本号的更新请求;然后组件服务器会根据组件的本地更新包版本号和记录的最新的最新的更新包的版本号相比对,当本地更新包版本号等于最新的更新包的版本号,确定该组件已经为最新版本,不需要更新;此时组件服务器会将isUpgrade设置为0。否则当本地更新包版本号不等于最新的更新包版本号,此时认为该组件不是最新版本,可以进行更新;此时组件服务器会将isUpgrade设置为1。这样,组件更新处理装置在接收到更新响应消息之后,根据其中的isUpgrade便可以确定组件是否需要下载新更新包进行更新;当需要时,从更新响应消息中获取新更新包的下载地址。
而当isLoad为0时,组件更新处理装置确定组件不需要下载新更新包进行更新,进一步从更新响应消息中获取isLoad;并当isLoad为1时,表示已下载最新的更新包。
图2为本实施例的组件更新处理过程中的代码示例,例如,图2所示的代码可以设置在更新响应消息中,其中的isUpgrade为更新标识位,isLoad为下载标识位,isLoad位于isUpgrade的上一行,被消息提示框遮挡。该更新响应消息中还可以包括新更新包的名称,新更新包的下载地址,还有当前App的版本号baseVer,组件的版本号pluginVer,更新包的版本号patchVer,等等。其中新更新包的下载地址,也可以称之为文件统一资源定位符(Uniform Resoure Locator;URL),此处简称为fileURL,即文件的下载地址。当根据更新响应消息中的isUpgrade和/或isLoad确定组件需要下载新更新包进行更新,从更新响应消息中获取新更新包的下载地址即fileURL。
其中组件的最新的更新包可以存储在文件服务器中,在组件服务器和文件服务器中均存储有该最新的更新包的版本号,其中组件服务器和文件服务器可以设置在云端。
本实施例的更新控制可以由云端控制,可以进行定量灰度下发,分城市下发,分渠道下发,如地图/搜索/线上到线下(Online To Offline;O2O)平台。
进一步可选地,本实施例的步骤102,具体可以包括如下步骤:
(b1)根据下载地址向文件服务器发送携带白名单标识的更新包下载请求,以供文件服务器根据白名单标识检测更新包下载请求为合法请求;
例如采用白名单机制可以防止恶意盗链。具体地,可以将白名单标识携带在更新包下载请求的头文件中;采用超文本传输协议(HyperText Transfer Protocol;HTTP)向下载地址对应的文件服务器发送更新包下载请求,这样即使被第三方获取到下载地址,也可以避免其通过云端下载到Patch File,可以增强信息传输的安全性。
本实施例中,采用HTPP下载新更新包即Patch File,可以避免新更新包PatchFile被第三方工具拦截。(b2)接收文件服务器发送的、采用第一加密算法对新更新包进行加密后的第一文件和采用第二加密算法对新更新包的第一信息摘要值进行加密后的第二文件;
本实施例中,为了保证下载的新更新包为被拦截修改或者恶意篡改,可以采用多种加密技术组合使用,避免Patch File下载过程中被拦截修改。例如文件服务器发送给组件更新处理装置的包括第一文件和第二文件两个文件,第一个文件是采用第一加密算法对新更新包加密后的文件,例如第一加密算法可以为高级加密标准(Advanced EncryptionStandard;AES)算法;第二加密文件可以为采用第二加密算法对新更新包的第一信息摘要值进行加密后的文件。例如可以采用消息摘要算法第五版(Message Digest Algorithm;MD5)计算该新更新包的第一信息摘要值,然后利用第二加密算法如RSA算法对第一信息摘要值进行加密,得到第二文件。
(b3)采用第一加密算法对应的解密算法对第一文件解密;
(b4)获取第一文件解密后的文件的第二信息摘要值;
(b5)采用第二加密算法对应的解密算法对第二文件进行解密,得到第三信息摘要值;
(b6)将第二信息摘要值和第三信息摘要值进行比对,当两者一致时,确定采用第一加密算法对应的解密算法对第一文件解密后的文件为新更新包。
组件更新处理装置在接收到第一文件和第二文件之后,可以采用AES对应的解密算法对第一文件解密,然后采用MD5算法对解密后的文件计算信息摘要值,得到第二信息摘要值。同时采用RSY对应的解密算法对第二文件进行解密,得到第三信息摘要值。其中MD5算法为非常精密的算法,只要处理的原文件有些许变化,计算后的信息摘要值都会相差很大。因此,将第二信息摘要值和第三信息摘要值进行比对,当两者一致时,便可以确定采用第一加密算法对应的解密算法对第一文件解密后的文件为新更新包,且可以认为该新更新包在传输中未被进行任何篡改。
进一步可选地,在上述AES/RSA加密解密的基础上,文件服务器还可以采用base64编码对第一文件和第二文件进行编码,对应地,在组件更新处理装置一侧,采用base64解码对接收到的文件进行解码,得到第一文件和第二文件。这样,可以避免在加密后的二进制数据转化为字符串时,因为空格造成数据截断。
进一步可选地,本实施例的组件更新处理方法,还可以包括:在采用新更新包更新组件过程中,更新崩溃退出时,记录崩溃标识位;
例如,在采用新更新包更新组件过程中,更新崩溃退出时,将崩溃时运行的新更新包的对应的函数的退出标识更新为非正常退出的标识。新更新包中包括多个函数,在利用新更新包更新组件时,可以加载到某个函数时,出现crash,而导致更新崩溃,退出。此时将崩溃时运行的新更新包的对应的函数的退出标识更新为非正常退出的标识,例如原来为1的话,更新为0。
该机制为crash容错处理机制,在云端的文件服务器中的Patch文件里,在每次进入/退出一个函数时,都设置相应的该函数的进入标识为和退出标识位,例如可以均设置为1。在组件更新处理装置端运行时,会check标记位是否一致,如果一致,确定没有经过crash,否则确认发生过crash,因此,本实施例的技术方案具有crash容错能力。
为了防止组件加载存在问题的patch包造成crash,基线暂时不提供组件crash时的回调函数,所以要求组件在每个修改方法开始的地方重置进入标识位和退出标识位,然后在开始时标记进入标识位,在结束时标记结束标识位,下次启动组件后判断是否加载patch包。
进一可选地,在上述实施例的步骤103“采用新更新包更新组件”之后,还可以包括:删除本地的旧更新包,存储新更新包以及更新包的版本号,可以保证加载的一致性。
进一步可选地,在上述实施例的技术方案的基础上“根据基线接口标识位确定App允许组件进行热更新”之后,“当组件需要更新时,从组件服务器中获取新更新包的下载地址”之前,还可以包括:
(c1)检测当前运行的App的版本号、组件的版本号以及更新包的版本号是否分别均与本地存储的App的版本号、组件的版本号以及更新包的版本号一致;当不一致时,执行步骤(c2);当一致时,执行步骤(c3);
(c2)删除本地的更新包;然后可以从步骤100开始执行上述实施例的技术方案。
若当前运行的App的版本号、组件的版本号以及更新包的版本号均与本地存储的App的版本号、组件的版本号以及更新包的版本号一致,说明本地的存储的版本与云端的版本一致,可以进行升级;否则若不一致,可以删除本地的所有更新包,重置所有打点标识,重新向云端请求更新。
(c3)检测本地存储的更新包是否存在崩溃标识位;当本地存储的更新包存在崩溃标识位,执行步骤(c4);当本地存储的更新包不存在崩溃标识位,执行步骤(c5);
本实施例中,当本地存储有崩溃标识位时,说明之前的更新版本在加载时出现crash,此时可以避免再次加载存储的更新包,防止crash的再次发生。
(c4)不加载本地的存储的更新包;
(c5)检测控制加载本地标识位标识的是否为组件服务器允许组件加载更新包;若是,然后可以从步骤100开始执行上述实施例的技术方案;否则若不是,不更新。
当本地存储的更新包不存在崩溃标识位,还可以进一步检测控制加载本地标识位,该控制加载本地标识位可以理解为远端对组件更新处理装置端的控制。如当该控制加载本地标识位为0时,表示组件服务器不允许组件加载更新包;否则当该控制加载本地标识位为1时,表示组件服务器允许组件加载更新包。
本实施例的组件更新处理方法中所包括的上述所有可选技术方案,可以采用可以结合的方式,任意组合,形成本发明的可选实施例,在此不再一一赘述。
本实施例的组件更新处理方法,通过采用上述方案,可以实现对App中插入的组件进行热更新,克服现有技术中传统App和设置在其上的O2O业务的生态组件的经常存在发版计划不匹配的技术问题,使得组件的更新不用等待APP的更新便可以实现热更新,能够有效地提高组件的更新效率,能够有效地增强对组件的独立管理能力。
图3为本发明的组件更新处理装置实施例一的结构图。如图3所示,本实施例的组件更新处理装置,具体可以包括:确定模块10、获取模块11、下载模块12和更新模块13。
其中确定模块10用于当App中的组件被打开之后,确定组件能够进行热更新;获取模块11用于当根据确定模块10确定组件需要更新时,从组件服务器中获取新更新包的下载地址;下载模块12用于根据获取模块11获取的下载地址,下载组件的新更新包;更新模块13用于采用下载模块12下载的新更新包更新组件。
本实施例的组件更新处理装置,通过采用上述模块实现组件的更新处理,与上述相关方法实施例的实现原理以及实现效果相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
图4为本发明的组件更新处理装置实施例二的结构图。如图4所示,本实施例的组件更新处理装置,在上述图3所示实施例的技术方案的基础上,进一步还包括如下技术方案。
本实施例的组件更新处理装置中,获取模块11具体用于:
向组件服务器发送携带本地更新包版本号的更新请求;
接收组件服务器发送的携带更新标识位的更新响应消息;更新标识位和下载标识位为组件服务器根据本地更新包的版本号和最新的更新包的版本号确定的;
根据更新响应消息中的更新标识位,确定组件需要下载新更新包进行更新;
从更新响应消息中获取新更新包的下载地址;
进一步地,获取模块11还用于当根据更新响应消息中的更新标识位,确定组件不需要下载新更新包进行更新,进一步从更新响应消息中获取下载标识位;
确定模块10还用于根据下载标识位确定已下载最新的更新包。
进一步可选地,本实施例的组件更新处理装置中,下载模块12具体用于:
根据下载地址向文件服务器发送携带白名单标识的更新包下载请求,以供文件服务器根据白名单标识检测更新包下载请求为合法请求;
接收文件服务器发送的、采用第一加密算法对新更新包进行加密后的第一文件和采用第二加密算法对新更新包的第一信息摘要值进行加密后的第二文件;
采用第一加密算法对应的解密算法对第一文件解密;
获取第一文件解密后的文件的第二信息摘要值;
采用第二加密算法对应的解密算法对第二文件进行解密,得到第三信息摘要值;
将第二信息摘要值和第三信息摘要值进行比对,当两者一致时,确定采用第一加密算法对应的解密算法对第一文件解密后的文件为新更新包。
进一步可选地,本实施例的组件更新处理装置中,下载模块12具体还用于:
将白名单标识携带在更新包下载请求的头文件中;
采用超文本传输协议向下载地址对应的文件服务器发送更新包下载请求。
进一步可选地,本实施例的组件更新处理装置中,还包括记录模块14。
该记录模块14用于在更新模块13采用新更新包更新组件过程中,更新崩溃退出时,记录崩溃标识位;
进一步地,记录模块14具体用于在更新模块13采用新更新包更新组件过程中,更新崩溃退出时,将崩溃时运行的新更新包的对应的函数的退出标识更新为非正常退出的标识。
进一步可选地,本实施例的组件更新处理装置中,更新模块13还用于删除本地的旧更新包,存储新更新包以及更新包的版本号。
进一步可选地,本实施例的组件更新处理装置中,确定模块10具体用于根据基线接口标识位确定App允许组件进行热更新。
进一步可选地,本实施例的组件更新处理装置中,还包括:检测模块15和处理模块16。
检测模块15用于在确定模块10确定App允许组件进行热更新时,检测当前运行的App的版本号、组件的版本号以及更新包的版本号是否分别均与本地存储的App的版本号、组件的版本号以及更新包的版本号一致;
处理模块16用于根据检测模块15的检测结果,确定不一致时,删除本地的更新包;然后触发获取模块11从组件服务器中获取新更新包的下载地址。
进一步地,检测模块15还用于当确定运行的App的版本号、组件的版本号以及更新包的版本号是否分别均与本地存储的App的版本号、组件的版本号以及更新包的版本号一致时,进一步检测本地存储的更新包是否存在崩溃标识位;
处理模块16还用于当本地存储的更新包存在崩溃标识位,不加载本地的存储的更新包;然后触发获取模块11从组件服务器中获取新更新包的下载地址。
检测模块15还用于当本地存储的更新包不存在崩溃标识位时,检测并确定控制加载本地标识位标识的为组件服务器允许组件加载更新包。
本实施例的组件更新处理装置,通过采用上述模块实现组件的更新处理,与上述相关方法实施例的实现原理以及实现效果相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
本实施例的组件更新处理方法及装置,优选地,适用于IOS操作系统,其中的应用可以为地图,搜索或者各种O2O应用平台,其中的组件可以为普通的组件,也可以为O2O业务的组件,如酒店业务的组件。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (16)
1.一种组件更新处理方法,其特征在于,所述方法包括:
当应用中的组件被打开之后,确定所述组件能够进行热更新;
当所述组件需要更新时,从组件服务器中获取新更新包的下载地址;
根据所述下载地址,下载所述组件的所述新更新包;
采用所述新更新包更新所述组件。
2.根据权利要求1所述的方法,其特征在于,当所述组件需要更新时,从组件服务器中获取新更新包的下载地址,具体包括:
向所述组件服务器发送携带本地更新包版本号的更新请求;
接收所述组件服务器发送的携带更新标识位的更新响应消息;所述更新标识位为所述组件服务器根据所述本地更新包的版本号和最新的更新包的版本号确定的;
根据所述更新响应消息中的所述更新标识位,确定所述组件需要下载所述新更新包进行更新;
从所述更新响应消息中获取所述新更新包的下载地址;
进一步地,所述方法还包括:
当根据所述更新响应消息中的所述更新标识位,确定所述组件不需要下载所述新更新包进行更新,进一步从所述更新响应消息中获取下载标识位;
根据所述下载标识位确定已下载最新的更新包。
3.根据权利要求2所述的方法,其特征在于,根据所述下载地址,下载所述组件的所述新更新包,具体包括:
根据所述下载地址向文件服务器发送携带白名单标识的更新包下载请求,以供所述文件服务器根据所述白名单标识检测所述更新包下载请求为合法请求;
接收所述文件服务器发送的、采用第一加密算法对所述新更新包进行加密后的第一文件和采用第二加密算法对所述新更新包的第一信息摘要值进行加密后的第二文件;
采用所述第一加密算法对应的解密算法对所述第一文件解密;
获取所述第一文件解密后的文件的第二信息摘要值;
采用所述第二加密算法对应的解密算法对所述第二文件进行解密,得到第三信息摘要值;
将所述第二信息摘要值和所述第三信息摘要值进行比对,当两者一致时,确定采用所述第一加密算法对应的解密算法对所述第一文件解密后的文件为所述新更新包。
4.根据权利要求3所述的方法,其特征在于,根据所述下载地址向文件服务器发送携带白名单标识的更新包下载请求,具体包括:
将所述白名单标识携带在所述更新包下载请求的头文件中;
采用超文本传输协议向所述下载地址对应的所述文件服务器发送所述更新包下载请求。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在采用所述新更新包更新所述组件过程中,更新崩溃退出时,记录崩溃标识位;
进一步地,在采用所述新更新包更新所述组件过程中,更新崩溃退出时,记录崩溃标识位,具体包括:在采用所述新更新包更新所述组件过程中,更新崩溃退出时,将崩溃时运行的所述新更新包的对应的函数的退出标识更新为非正常退出的标识。
6.根据权利要求1-5任一所述的方法,其特征在于,采用所述新更新包更新所述组件之后,所述方法还包括:
删除本地的旧更新包,存储所述新更新包以及所述更新包的版本号。
7.根据权利要求1-5任一所述的方法,其特征在于,确定所述组件能够进行热更新,具体包括:
根据基线接口标识位确定所述应用允许所述组件进行热更新。
8.根据权利要求7所述的方法,其特征在于,根据基线接口标识位确定所述应用允许所述组件进行热更新之后,当所述组件需要更新时,从组件服务器中获取新更新包的下载地址之前,所述方法还包括:
检测当前运行的应用的版本号、组件的版本号以及更新包的版本号是否分别均与本地存储的应用的版本号、组件的版本号以及更新包的版本号一致;
当不一致时,删除本地的更新包;
进一步地,当运行的所述应用的版本号、所述组件的版本号以及所述更新包的版本号是否分别均与本地存储的所述应用的版本号、所述组件的版本号以及所述更新包的版本号一致时,所述方法还包括:
检测本地存储的所述更新包是否存在崩溃标识位;当本地存储的更新包存在所述崩溃标识位,不加载本地的存储的更新包;
进一步地,当本地存储的所述更新包不存在所述崩溃标识位时,检测并确定控制加载本地标识位标识的为所述组件服务器允许所述组件加载更新包。
9.一种组件更新处理装置,其特征在于,所述装置包括:
确定模块,用于当应用中的组件被打开之后,确定所述组件能够进行热更新;
获取模块,用于当所述组件需要更新时,从组件服务器中获取新更新包的下载地址;
下载模块,用于根据所述下载地址,下载所述组件的所述新更新包;
更新模块,用于采用所述新更新包更新所述组件。
10.根据权利要求9所述的装置,其特征在于,所述获取模块,具体用于:
向所述组件服务器发送携带本地更新包版本号的更新请求;
接收所述组件服务器发送的携带更新标识位的更新响应消息;所述更新标识位为所述组件服务器根据所述本地更新包的版本号和最新的更新包的版本号确定的;
根据所述更新响应消息中的所述更新标识位,确定所述组件需要下载所述新更新包进行更新下载标识位;
从所述更新响应消息中获取所述新更新包的下载地址;
进一步地,所述获取模块,还用于当根据所述更新响应消息中的所述更新标识位,确定所述组件不需要下载所述新更新包进行更新,进一步从所述更新响应消息中获取下载标识位;
所述确定模块,还用于根据所述下载标识位确定已下载最新的更新包。
11.根据权利要求10所述的装置,其特征在于,所述下载模块,具体用于:
根据所述下载地址向文件服务器发送携带白名单标识的更新包下载请求,以供所述文件服务器根据所述白名单标识检测所述更新包下载请求为合法请求;
接收所述文件服务器发送的、采用第一加密算法对所述新更新包进行加密后的第一文件和采用第二加密算法对所述新更新包的第一信息摘要值进行加密后的第二文件;
采用所述第一加密算法对应的解密算法对所述第一文件解密;
获取所述第一文件解密后的文件的第二信息摘要值;
采用所述第二加密算法对应的解密算法对所述第二文件进行解密,得到第三信息摘要值;
将所述第二信息摘要值和所述第三信息摘要值进行比对,当两者一致时,确定采用所述第一加密算法对应的解密算法对所述第一文件解密后的文件为所述新更新包。
12.根据权利要求11所述的装置,其特征在于,所述下载模块,具体还用于:
将所述白名单标识携带在所述更新包下载请求的头文件中;
采用超文本传输协议向所述下载地址对应的所述文件服务器发送所述更新包下载请求。
13.根据权利要求9所述的装置,其特征在于,所述装置还包括:
记录模块,用于在采用所述新更新包更新所述组件过程中,更新崩溃退出时,记录崩溃标识位;
进一步地,所述记录模块,具体用于在采用所述新更新包更新所述组件过程中,更新崩溃退出时,将崩溃时运行的所述新更新包的对应的函数的退出标识更新为非正常退出的标识。
14.根据权利要求9-13任一所述的装置,其特征在于,所述更新模块,还用于删除本地的旧更新包,存储所述新更新包以及所述更新包的版本号。
15.根据权利要求9-13任一所述的装置,其特征在于,所述确定模块,具体用于根据基线接口标识位确定所述应用允许所述组件进行热更新。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括:
检测模块,用于检测当前运行的应用的版本号、组件的版本号以及更新包的版本号是否分别均与本地存储的应用的版本号、组件的版本号以及更新包的版本号一致;
处理模块,用于当所述检测模块确定不一致时,删除本地的更新包;
进一步地,所述检测模块,还用于当确定运行的所述应用的版本号、所述组件的版本号以及所述更新包的版本号是否分别均与本地存储的所述应用的版本号、所述组件的版本号以及所述更新包的版本号一致时,进一步检测本地存储的所述更新包是否存在崩溃标识位;
所述处理模块,还用于当本地存储的更新包存在所述崩溃标识位,不加载本地的存储的更新包。
所述检测模块,还用于当本地存储的所述更新包不存在所述崩溃标识位时,检测并确定控制加载本地标识位标识的为所述组件服务器允许所述组件加载更新包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610512400.XA CN106155742B (zh) | 2016-06-30 | 2016-06-30 | 组件更新处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610512400.XA CN106155742B (zh) | 2016-06-30 | 2016-06-30 | 组件更新处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106155742A true CN106155742A (zh) | 2016-11-23 |
CN106155742B CN106155742B (zh) | 2019-08-27 |
Family
ID=57350996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610512400.XA Active CN106155742B (zh) | 2016-06-30 | 2016-06-30 | 组件更新处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106155742B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648691A (zh) * | 2016-12-29 | 2017-05-10 | 深圳Tcl数字技术有限公司 | 多模块软件更新方法及系统 |
CN106886410A (zh) * | 2017-01-06 | 2017-06-23 | 深圳云天励飞技术有限公司 | 一种软件版本管理系统 |
CN107168699A (zh) * | 2017-04-28 | 2017-09-15 | 北京五八信息技术有限公司 | 应用程序修复方法及终端设备 |
CN107992318A (zh) * | 2017-12-07 | 2018-05-04 | 北京趣拿软件科技有限公司 | 应用程序升级方法、装置、存储介质和处理器 |
CN108234414A (zh) * | 2016-12-16 | 2018-06-29 | 北京京东尚科信息技术有限公司 | 一种app应用的升级方法及装置 |
CN108259556A (zh) * | 2017-11-30 | 2018-07-06 | 北京九五智驾信息技术股份有限公司 | 参数配置方法及终端 |
CN108829412A (zh) * | 2018-05-02 | 2018-11-16 | 广州金山安全管理系统技术有限公司 | 应用更新方法及装置 |
CN108984201A (zh) * | 2018-07-09 | 2018-12-11 | 深圳市思迪信息技术股份有限公司 | 移动平台版本智能在线升级方法及装置 |
CN109656592A (zh) * | 2018-12-06 | 2019-04-19 | Oppo广东移动通信有限公司 | 卡片管理方法、装置、终端及计算机可读存储介质 |
CN110502232A (zh) * | 2018-05-16 | 2019-11-26 | 杭州海康威视系统技术有限公司 | 页面应用的路由地址配置方法及配置装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104216749A (zh) * | 2014-09-10 | 2014-12-17 | 广州金山网络科技有限公司 | 一种应用程序的更新方法及装置 |
CN104866341A (zh) * | 2015-05-07 | 2015-08-26 | 北京金山安全软件有限公司 | 一种组件升级方法、装置及终端 |
CN105302615A (zh) * | 2015-11-24 | 2016-02-03 | 小米科技有限责任公司 | 软件升级方法与装置 |
-
2016
- 2016-06-30 CN CN201610512400.XA patent/CN106155742B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104216749A (zh) * | 2014-09-10 | 2014-12-17 | 广州金山网络科技有限公司 | 一种应用程序的更新方法及装置 |
CN104866341A (zh) * | 2015-05-07 | 2015-08-26 | 北京金山安全软件有限公司 | 一种组件升级方法、装置及终端 |
CN105302615A (zh) * | 2015-11-24 | 2016-02-03 | 小米科技有限责任公司 | 软件升级方法与装置 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108234414A (zh) * | 2016-12-16 | 2018-06-29 | 北京京东尚科信息技术有限公司 | 一种app应用的升级方法及装置 |
CN106648691A (zh) * | 2016-12-29 | 2017-05-10 | 深圳Tcl数字技术有限公司 | 多模块软件更新方法及系统 |
CN106886410A (zh) * | 2017-01-06 | 2017-06-23 | 深圳云天励飞技术有限公司 | 一种软件版本管理系统 |
CN107168699A (zh) * | 2017-04-28 | 2017-09-15 | 北京五八信息技术有限公司 | 应用程序修复方法及终端设备 |
CN108259556A (zh) * | 2017-11-30 | 2018-07-06 | 北京九五智驾信息技术股份有限公司 | 参数配置方法及终端 |
CN107992318A (zh) * | 2017-12-07 | 2018-05-04 | 北京趣拿软件科技有限公司 | 应用程序升级方法、装置、存储介质和处理器 |
CN108829412A (zh) * | 2018-05-02 | 2018-11-16 | 广州金山安全管理系统技术有限公司 | 应用更新方法及装置 |
CN110502232A (zh) * | 2018-05-16 | 2019-11-26 | 杭州海康威视系统技术有限公司 | 页面应用的路由地址配置方法及配置装置 |
CN110502232B (zh) * | 2018-05-16 | 2023-10-10 | 杭州海康威视系统技术有限公司 | 页面应用的路由地址配置方法及配置装置 |
CN108984201A (zh) * | 2018-07-09 | 2018-12-11 | 深圳市思迪信息技术股份有限公司 | 移动平台版本智能在线升级方法及装置 |
CN109656592A (zh) * | 2018-12-06 | 2019-04-19 | Oppo广东移动通信有限公司 | 卡片管理方法、装置、终端及计算机可读存储介质 |
CN109656592B (zh) * | 2018-12-06 | 2022-02-08 | Oppo广东移动通信有限公司 | 卡片管理方法、装置、终端及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106155742B (zh) | 2019-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106155742A (zh) | 组件更新处理方法及装置 | |
US20200084188A1 (en) | Secure software updates | |
US8122100B2 (en) | Multiple object download | |
CN104503745B (zh) | 一种生成应用渠道包的方法和装置 | |
CN100424678C (zh) | 使用隐含中间密钥来认证软件的系统和方法 | |
US7975308B1 (en) | Method and apparatus to secure user confidential data from untrusted browser extensions | |
US10019558B2 (en) | Controlling licensable features of software using access tokens | |
CN107533616A (zh) | 用于使数据安全的系统和方法 | |
CN110225063A (zh) | 汽车车载系统的升级方法、升级系统、服务器及车载终端 | |
CN101924607A (zh) | 基于固件空中传输技术的固件处理方法、装置及系统 | |
CN104735086B (zh) | 一种文件的安全下载方法和装置 | |
CN104219198B (zh) | 一种WebApp的防篡改方法 | |
CN104702575B (zh) | 一种账号管理方法、管理平台及系统 | |
CN108809960A (zh) | 一种文件上传及下载方法、装置、设备、系统及存储介质 | |
CN107103214A (zh) | 一种应用于Android系统的应用程序反调试方法及装置 | |
CN112291201B (zh) | 业务请求的传输方法及装置、电子设备 | |
CN112689285B (zh) | 一种移动端sdk的授权认证方法及系统 | |
CN106656455A (zh) | 一种网站访问方法及装置 | |
EP3041188B1 (en) | Method, device and system for controlling presentation of application | |
US9548969B2 (en) | Encryption/decryption method, system and device | |
WO2017197869A1 (zh) | 版本文件校验方法及装置、加密方法及装置和存储介质 | |
CN105653932B (zh) | 软件升级验证的方法和装置 | |
CN104917763B (zh) | 一种pin码缓存方法 | |
CN106778227A (zh) | 应用程序处理方法、应用程序启动方法及装置 | |
CN112732676B (zh) | 基于区块链的数据迁移方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |