CN108984201A - 移动平台版本智能在线升级方法及装置 - Google Patents
移动平台版本智能在线升级方法及装置 Download PDFInfo
- Publication number
- CN108984201A CN108984201A CN201810745284.5A CN201810745284A CN108984201A CN 108984201 A CN108984201 A CN 108984201A CN 201810745284 A CN201810745284 A CN 201810745284A CN 108984201 A CN108984201 A CN 108984201A
- Authority
- CN
- China
- Prior art keywords
- version information
- functional module
- application program
- local
- access
- 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental 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)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种移动平台版本智能在线升级方法及装置,通过在整个应用程序发布、支持服务器支援以及应用程序本地使用中引入与功能模块对应的版本信息,在应用本地具体访问功能模块时拦截请求,进而比对其在本地和线上版本信息是否一致从而确定功能模块是否最新,且在非最新情况下直接将该次访问转连接至线上完成,同时更新下载新的功能模块,最终实现了应用程序的本地离线缓存+远程在线更新的目的。可以达到用户按需更新加载和用户无感知的体验优势。
Description
技术领域
本发明涉及一种移动平台软件,尤其是指一种移动平台版本智能在线升级方法及装置。
背景技术
现有移动平台上的应用软件,例如券商综合应用程序中普遍采用Hybrid混合开发模式,里面包含的Html5语言编写的功能模块比较繁多,而每个功能模块的应用场景、实现方式以及更新频率都不相同。其中某些模块在更新过程中对原生应用程序的修改依赖比较少,但是更新的频率却比较高,如果采用传统离线包更新模式,会使运维相对繁琐一点。
发明内容
本发明所要解决的技术问题是:提供了一种采用H5本地离线缓存加远程在线更新的方式进行H5相关资源的访问的移动平台版本智能在线升级方法及装置。
为了解决上述技术问题,本发明采用的技术方案为:一种移动平台应用程序智能在线升级方法,包括,
应用程序打包流程,包括步骤:
S11)、将各功能模块的初始版本及对应版本信息打包形成应用程序发布;
所述功能模块由html5语言编写,其包含有资源文件;
S12)、在应用程序的支持服务器上存放对应功能模块的资源文件与版本信息;
应用访问流程,包括步骤:
S21)、应用程序启动;
S22)、扫描加载应用程序的功能模块保存在本地的版本信息;
S23)、获取支持服务器上对应应用程序的各个功能模块的线上的版本信息;
S24)、应用程序拦截所有功能模块的资源文件访问请求;
S25)、比较请求访问功能模块的本地的版本信息与线上的版本信息是否相同,否则转到步骤S26,是则转到步骤S29;
S26)、将请求访问功能模块的资源文件访问路径指向支持服务器;
S27)、从支持服务器将请求访问功能模块的资源文件进行运行展示并更新保存至应用程序本地;
S28)、对应更新该功能模块的本地的版本信息,而后返回步骤S23;
S29)、将请求访问功能模块的资源文件访问路径指向本地的资源文件,而后返回步骤S23。
进一步的,还包括,应用程序更新流程,包括步骤:
S31)、当应用程序的功能模块发生变化时,重新构建功能模块并更新对应的版本信息;
S32)、将重新构建的功能模块的资源文件及版本信息更新至支持服务器。
上述中,所述步骤S22和S23之间还包括步骤:
S223)、判断是否满足应用程序在线升级的触发条件,是则转到步骤S23;
所述触发条件包括应用程序启动、应用程序进入前台、应用程序距离上次更新时间超过预设阈值中的一种或多种。
上述中,所述功能模块的资源文件包括js、css、图片、html、字体中的一种或多种;所述版本信息与功能模块的资源文件对应;
所述应用访问流程中,步骤S25,通过比较请求访问功能模块的资源文件的本地的版本信息与线上的版本信息是否相同,否则转到步骤S26,是则转到步骤S29。
进一步的,所述版本信息为与功能模块的资源文件对应内容的MD5值;
所述应用访问流程中,步骤S25,通过比较请求访问功能模块的资源文件的本地的版本信息与线上的版本信息中的MD5值是否相同,否则转到步骤S26,是则转到步骤S29;
所述步骤S28)、对应更新该功能模块的本地的版本信息的对应内容MD5值。
上述中,所述应用访问流程中,步骤S22将本地的版本信息加载在内存中;
步骤S23将获取的线上的版本信息加载在内存中;
步骤S25,通过比较请求访问功能模块的资源文件在内存中的本地的版本信息与线上的版本信息中的MD5值是否相同,否则转到步骤S26,是则转到步骤S29;
步骤S28)、对应更新该功能模块的本地的版本信息的对应内容MD5值后保存在本地。
进一步的,还包括版本信息文件,所述版本信息文件与功能模块相对应,其包含对应功能模块的资源文件的访问路径及版本信息;
在应用程序打包流程中,
所述步骤S12)在应用程序的支持服务器上存放对应功能模块的资源文件与包含版本信息的版本信息文件;
在应用访问流程中,
所述步骤S24,应用程序拦截所有功能模块的资源文件访问请求,获取访问路径;
所述步骤S25具体包括步骤,
S251)、根据请求访问功能模块的访问路径作为索引从本地的版本信息文件中获取对应版本信息;
根据请求访问功能模块的访问路径作为索引从线上的版本信息文件中获取对应版本信息;
S252)比较请求访问功能模块的资源文件的本地的版本信息与线上的版本信息是否相同,否则转到步骤S26,是则转到步骤S29;
所述步骤S28,对应更新该功能模块的本地的版本信息文件中的版本信息。
上述中,所述版本信息采用AES加密;所述应用访问流程中,
步骤S22后,包括对加载的本地的版本信息进行AES解密的步骤;
步骤S23后,包括对获取的线上的版本信息进行AES解密的步骤;
步骤S28后,包括对更新的本地的版本信息进行AES加密的步骤。
本发明还提供了一种移动平台应用程序智能在线升级装置方法,包括,
应用程序打包模块,包括:
发布单元,用于将各功能模块的初始版本及对应版本信息打包形成应用程序发布;所述功能模块由html5语言编写,其包含有资源文件;
存放单元,用于在应用程序的支持服务器上存放对应功能模块的资源文件与版本信息;
应用程序更新模块,包括:
重建单元,用于当应用程序的功能模块发生变化时,重新构建功能模块并更新对应的版本信息;
线上更新单元,用于将重新构建的功能模块的资源文件及版本信息更新至支持服务器;
应用访问模块,包括:
启动单元,用于应用程序启动;
本地版本信息加载单元,用于扫描加载应用程序的功能模块保存在本地的版本信息;
在线版本信息获取单元,用于获取支持服务器上对应应用程序的各个功能模块的线上的版本信息;
拦截单元,用于应用程序拦截所有功能模块的资源文件访问请求;
比较单元,用于比较请求访问功能模块的本地的版本信息与线上的版本信息是否相同,否则转到转指向单元,是则转到本地指向单元;
转指向单元,用于将请求访问功能模块的资源文件访问路径指向支持服务器;
更新单元,用于从支持服务器将请求访问功能模块的资源文件更新至应用程序本地;
版本信息更新单元,用于对应更新该功能模块的本地的版本信息,而后返回在线版本信息获取单元;
本地指向单元,用于将请求访问功能模块的资源文件访问路径指向本地的资源文件,而后返回在线版本信息获取单元。
进一步的,还包括版本信息文件,所述版本信息文件与功能模块相对应,其包含对应功能模块的资源文件的访问路径及版本信息;
在应用程序打包模块中,
所述存放单元,用于在应用程序的支持服务器上存放对应功能模块的资源文件与包含版本信息的版本信息文件;
在应用访问模块中,
所述拦截单元,用于应用程序拦截所有功能模块的资源文件访问请求,获取访问路径;
所述比较单元具体包括,
版本信息获取子单元,用于根据请求访问功能模块的访问路径作为索引从本地的版本信息文件中获取对应版本信息;用于根据请求访问功能模块的访问路径作为索引从线上的版本信息文件中获取对应版本信息;
比较子单元,用于比较请求访问功能模块的资源文件的本地的版本信息与线上的版本信息是否相同,否则转到转指向单元,是则转到本地指向单元;
所述更新单元,用于对应更新该功能模块的本地的版本信息文件中的版本信息。
本发明的有益效果在于:通过在整个应用程序发布、支持服务器支援以及应用程序本地使用中引入与功能模块对应的版本信息,在应用本地具体访问功能模块时拦截请求,进而比对其在本地和线上版本信息是否一致从而确定功能模块是否最新,且在非最新情况下直接将该次访问转连接至线上完成,同时更新下载新的功能模块,最终实现了应用程序的本地离线缓存+远程在线更新的目的。可以达到用户按需更新加载和用户无感知的体验优势。
附图说明
下面结合附图详述本发明的具体结构
图1为本发明的应用程序打包流程图;
图2为本发明的应用访问流程图;
图3为本发明的应用程序更新流程图;
图4为本发明一实施例的应用访问流程图;
图5为本发明实施示例的应用程序打包流程图;
图6为本发明实施示例的应用访问流程图;
图7为本发明实施示例的应用程序更新流程图。
具体实施方式
为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
一种移动平台应用程序智能在线升级方法,包括,
应用程序打包流程,如图1所示,包括步骤:
S11)、将各功能模块的初始版本及对应版本信息打包形成应用程序发布;
所述功能模块由html5语言编写,其包含有资源文件;
此处的应用程序,通常采用Hybrid混合开发模式,里面包含各种功能模块其中本专利特指由HTML5语言开发的功能模块,由于HTML5语言开发的应用程序功能模块即可直接支持本地或网络化资源的访问,从而使得基于此种功能模块的应用程序可适用于本专利的技术进行在线升级。
S12)、在应用程序的支持服务器上存放对应功能模块的资源文件与版本信息;
应用访问流程,如图2所示,包括步骤:
S21)、应用程序启动;
S22)、扫描加载应用程序的功能模块保存在本地的版本信息;
S23)、获取支持服务器上对应应用程序的各个功能模块的线上的版本信息;
S24)、应用程序拦截所有功能模块的资源文件访问请求;
S25)、比较请求访问功能模块的本地的版本信息与线上的版本信息是否相同,否则转到步骤S26,是则转到步骤S29;
S26)、将请求访问功能模块的资源文件访问路径指向支持服务器;
S27)、从支持服务器将请求访问功能模块的资源文件进行运行展示并更新保存至应用程序本地;
S28)、对应更新该功能模块的本地的版本信息,而后返回步骤S23;
S29)、将请求访问功能模块的资源文件访问路径指向本地的资源文件,而后返回步骤S23。
从上述描述可知,本发明的有益效果在于:通过在整个应用程序发布、支持服务器支援以及应用程序本地使用中引入与功能模块对应的版本信息,在应用本地具体访问功能模块时拦截请求,进而比对其在本地和线上版本信息是否一致从而确定功能模块是否最新,且在非最新情况下直接将该次访问转连接至线上完成,同时更新下载新的功能模块,最终实现了应用程序的本地离线缓存+远程在线更新的目的。可以达到用户按需更新加载和用户无感知的体验优势。
实施例一
进一步的,还包括,应用程序更新流程,参见图3,包括步骤:
S31)、当应用程序的功能模块发生变化时,重新构建功能模块并更新对应的版本信息;
S32)、将重新构建的功能模块的资源文件及版本信息更新至支持服务器。
本实施例中,提供了应用程序更新情况的流程。当应用程序更新时,版本信息也应当对应重新构建,并在支持服务器上进行更新,以便后续客户端APP启动时可根据最新更新的版本信息判断是否需要进行更新。
实施例二
参见图4,上述中,所述步骤S22和S23之间还包括步骤:
S223)、判断是否满足应用程序在线升级的触发条件,是则转到步骤S23,否则转到步骤S29;
所述触发条件包括应用程序启动、应用程序进入前台、应用程序距离上次更新时间超过预设阈值中的一种或多种。
所述步骤S28)、对应更新该功能模块的本地的版本信息,而后返回步骤S223;
所述步骤S29)、将请求访问功能模块的资源文件访问路径指向本地的资源文件,而后返回步骤S223。
本实施例提供了一个应用程序在线更新的触发节点,其最佳配置在步骤S23、S24之间,可保障整个逻辑的通畅性,同时又避免App运行后错过在线升级的触发。而触发条件也如本实施例所列举可采用单一或多种结合的触发机制。通过配备在线升级触发机制,可避免App过于频繁进行与支持服务器的在线频繁验证,既降低支持服务器的压力,也提升App的运行流畅性。
实施例三
上述中,所述功能模块的资源文件包括js(JavaScript)、css、图片、html、字体中的一种或多种;所述版本信息与功能模块的资源文件对应。
作为html5语言编写的功能模块,其资源文件会根据实际情况配置不同类型,上述是是常见几种资源文件,通常上述种类的资源文件作用在于:
js(JavaScript):实现页面业务逻辑;
CSS:控制页面展示样式;
图片:页面上面显示的图片;
HTML:展示给用户的页面;
字体:展示界面的字体样式。
对应的,由于版本信息在本实施例中更为细致的与功能模块中的具体资源文件对应,因此在应用访问流程中也需要做对应调整:
步骤S25,通过比较请求访问功能模块的资源文件的本地的版本信息与线上的版本信息是否相同,否则转到步骤S26,是则转到步骤S29。
本实施例中,版本信息进一步细化与功能模块中的资源文件对应。从而使得整个应用程序在线升级过程中能细化到具体功能模块中的资源。优化了采用本发明方法下应用程序中HTML5功能模块的更新验证细度,有效提升了用户体验。
需要说明的是,本实施例中不限定版本信息与资源文件对应的方式,其对应关系可根据需要采用分类对应,即js、css、图片、html、字体等一种类型作为一类,建立一个版本信息,如:
也可以进一步细化与资源文件一一对应,即:
实施例四
进一步的,所述版本信息为与功能模块的资源文件对应内容的MD5值;
所述应用访问流程中,步骤S25,通过比较请求访问功能模块的资源文件的本地的版本信息与线上的版本信息中的MD5值是否相同,否则转到步骤S26,是则转到步骤S29;
所述步骤S28)、对应更新该功能模块的本地的版本信息的对应内容MD5值,而后返回步骤S23或步骤223。
本实施例中,采用对资源文件内容形成MD5值方式,进而将该MD5作为功能模块的资源文件比较的基准——即版本信息。
习知的,MD5是Message Digest Algorithm MD5(中文名为消息摘要算法第五版)的简称,其为计算机安全领域广泛使用的一种散列函数,本生广泛应用与提供消息的完整性保护。且具备以下四个优点:
1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
2、容易计算:从原数据计算出MD5值很容易。
3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
对于本专利技术而言,采用功能模块的资源文件内容作为MD5运算输入进而得到固定长度的MD5值,再应用于比较,不仅可确保一致对比的准确性、安全性,且可大大减少对比计算工作量,进而提升对比速度,提升用户体验。
实施例五
上述中,所述应用访问流程中,步骤S22将本地的版本信息加载在内存中;
步骤S23将获取的线上的版本信息加载在内存中;
步骤S25,通过比较请求访问功能模块的资源文件在内存中的本地的版本信息与线上的版本信息中的MD5值是否相同,否则转到步骤S26,是则转到步骤S29;
步骤S28)、对应更新该功能模块的本地的版本信息的对应内容MD5值后保存在本地,而后返回步骤S23或步骤223。
本实施例中,通过将本地加载和在线获取的版本信息预先加载在内存中,利用内存超高速的交换能力,进而大幅提高两者比对的效率,对应时下日益复杂庞大的应用程序而言可大幅提高运行效率。
但对应在完成静默更新后,需要将版本信息更新,同时保存到本地存储中,不能仅放在内存中,以免App关闭损失更新数据。
实施例六
进一步的,本发明方法中还包括版本信息文件,所述版本信息文件与功能模块相对应,其包含对应功能模块的资源文件的访问路径及版本信息;
在应用程序打包流程中,
所述步骤S12)在应用程序的支持服务器上存放对应功能模块的资源文件与包含版本信息的版本信息文件;
此处,将功能模块(或者根据实际情况细致到资源文件种类、具体每个资源文件)的版本信息连同对应的访问路径打包在一个版本信息文件中。
例如:
所述步骤S24,应用程序拦截所有功能模块的资源文件访问请求,获取访问路径;
所述步骤S25具体包括步骤,
S251)、根据请求访问功能模块的访问路径作为索引从本地的版本信息文件中获取对应版本信息;
根据请求访问功能模块的访问路径作为索引从线上的版本信息文件中获取对应版本信息;
S252)比较请求访问功能模块的资源文件的本地的版本信息与线上的版本信息是否相同,否则转到步骤S26,是则转到步骤S29;
所述步骤S28,对应更新该功能模块的本地的版本信息文件中的版本信息,而后返回步骤S23或步骤223。
面对时下日益庞大和复杂的应用软件而言,其功能模块可能多达几十甚至上百个,而每个功能模块需要调用大量不同的资源文件。因此针对大型的应用程序而言,如果每个功能模块的资源文件都配置的版本信息,且版本信息独立作为文件,则会出现应用程序的初始化复杂、实际在线更新大量分散版本请求过多的问题,导致压力太大反而难以管理,应用程序运行效率低下。
为此,在本实施例中,进一步将功能模块的资源文件对应的大量版本信息放在一个版本信息文件中。即将若干版本信息“打包”在一个版本文件中,由此减少大量“版本信息”的文件打包和反复请求的问题。在细致化更新和运行效率中达到一个平衡。
实施例七
上述中,所述版本信息采用AES加密;所述应用访问流程中,
步骤S22后,包括对加载的本地的版本信息进行AES解密的步骤;
步骤S23后,包括对获取的线上的版本信息进行AES解密的步骤;
步骤S28后,包括对更新的本地的版本信息进行AES加密的步骤。
在本实施例中,对版本信息进行加密,从而使得在整个流转过程中,版本信息是个特殊加密的文件,有效避免软件被篡改的问题。
实施示例:
一种移动平台应用程序智能在线升级方法,包括,
应用程序打包流程,参见图5,包括步骤:
11)、计算App(应用程序)中各H5模块(由html5语言编写的功能模块)的各资源文件(如js、css、图片、html、字体等)内容的MD5值;
12)、将各H5模块的各资源文件内容的MD5值与其资源访问路径关联放入一版本信息文件中(例如:H5MD5.json);
13)、对版本信息文件内容采用AES进行加密保护,以加密文件的模式存在;
14)、将各功能模块的初始版本及版本信息文件打包形成App发布;
15)、在App对应的Web服务器(即支持服务器)上也同样存放一份打包的各个H5模块的资源文件与版本信息文件。
应用程序更新流程,参见图6,包括步骤:
16)、如果H5业务有变化时候,App开发人员会进行新的H5文件的构建,构建出新的H5模块以及相关资源的版本信息文件(例如:H5MD5.json)。
17)、对新构建的版本信息文件的内容采用AES进行加密保护,使得该文件以加密文件的模式存在、
18)、对加密后的版本信息文件进行压缩,生成Zip格式的压缩包(例如:H5MD5.json.zip),并给其设置解压密码。
19)、把发布构建的所有相关文件发布更新到App对应的Web服务器上面。
20)、Web服务器上H5的目录结构按照原生App的目录进行分类存放。
应用访问流程,参见图7包括步骤:
21)、应用程序启动;
22)、扫描加载应用程序的功能模块保存在本地的版本信息文件;
23)、对本地的版本信息文件进行对应AES解密;
24)、将解密后版本信息文件中的内容(即资源文件路径及MD5值)放入App内存中(保留在内存的此份数据我们假设标识为Local);
25)、判断是否满足应用程序在线升级的触发条件,例如应用程序启动、应用程序进入前台、应用程序距离上次更新时间超过预设阈值等,触发则执行步骤26,不触发则执行步骤37。
26)、通过Https的协议检测并下载Web服务器上最新发布的H5各个模块相应的版本信息文件加密压缩包(例如:H5MD5.json.zip)。
27)、解压版本信息文件加密压缩包。
28)通过AES解密版本信息文件内容。
29)保存H5各个模块的版本信息文件内容到内存中(保留在内存的此份数据我们假设标识为Server)。
30)、客户端App对本地所有H5模块的相关资源文件访问时会进行全局请求拦截;
31)、比较当前需要访问H5的相关资源文件的路径在Local内存中对应的MD5值和Server内存中的相应MD5值是否一样,不同则转到步骤S32,相同则转到S37;
32)、将相应的H5模块的资源文件访问请求通过Https协议转向对应App的Web服务器上;
33)、请求App对应Web服务器并加载到最新的H5相关资源后,把最新的H5模块的资源文件采用异步模式更新到本地的离线缓存资源包中;
34)、修改Local内存中版本信息文件的相应资源文件的MD5值;
35)、保存Local内存中的数据到本地的H5版本信息文件(例如:H5MD5.json);
36)、对保存的版本信息文件通过AES进行数据加密后再保存,返回步骤25。
由此,通过以上步骤后,客户端App已经完成了对应H5模块的资源文件的智能在线升级效果,下次再访问上述相同的H5模块相关资源文件时,由于此时需要访问H5模块的相关资源文件的路径在Local内存中的MD5值和Server内存中相应的MD5值一样,便会把请求直接转向访问本地相应的H5离线缓存文件,进行相关H5资源的加载展示,从而提高了H5加载的性能,最终实现了H5本地离线缓存+远程在线更新的目的。采用移动平台H5版本智能在线升级机制可以达到用户按需更新加载和用户无感知的体验优势。
37)、请求直接转向访问本地相应的H5模块的离线缓存的资源文件的,进行相关H5资源的加载展示,返回步骤25。
本发明还提供了一种移动平台应用程序智能在线升级装置方法,包括,
应用程序打包模块,包括:
发布单元,用于将各功能模块的初始版本及对应版本信息打包形成应用程序发布,而后转到存放单元;所述功能模块由html5语言编写,其包含有相关的资源文件;
存放单元,用于在应用程序的支持服务器上存放对应功能模块的资源文件与版本信息;
应用程序更新模块,包括:
重建单元,用于当应用程序的功能模块发生变化时,重新构建功能模块并更新对应的版本信息,而后转到线上更新单元;
线上更新单元,用于将重新构建的功能模块的资源文件及版本信息更新至支持服务器;
应用访问模块,包括:
启动单元,用于应用程序启动,而后转到本地版本信息加载单元;
本地版本信息加载单元,用于扫描加载应用程序的功能模块保存在本地的版本信息,而后转到在线版本信息获取单元;
在线版本信息获取单元,用于获取支持服务器上对应应用程序的各个功能模块的线上的版本信息,而后转到拦截单元;
拦截单元,用于应用程序拦截所有功能模块的资源文件访问请求,而后转到比较单元;
比较单元,用于比较请求访问功能模块的本地的版本信息与线上的版本信息是否相同,否则转到转指向单元,是则转到本地指向单元;
转指向单元,用于将请求访问功能模块的资源文件访问路径指向支持服务器,而后转到更新单元;
更新单元,用于从支持服务器将请求访问功能模块的资源文件进行运行展示并更新保存至应用程序本地,而后转到版本信息更新单元;
版本信息更新单元,用于对应更新该功能模块的本地的版本信息,而后返回步骤S23,而后转到本地指向单元;
本地指向单元,用于将请求访问功能模块的资源文件访问路径指向本地的资源文件,而后返回步骤S23。
从上述描述可知,本发明的有益效果在于:通过在整个应用程序发布、支持服务器支援以及应用程序本地使用中引入与功能模块对应的版本信息,在应用本地具体访问功能模块时拦截请求,进而比对其在本地和线上版本信息是否一致从而确定功能模块是否最新,且在非最新情况下直接将该次访问转连接至线上完成,同时更新下载新的功能模块,最终实现了应用程序的本地离线缓存+远程在线更新的目的。可以达到用户按需更新加载和用户无感知的体验优势。
实施例八
上述中,所述本地版本信息加载单元通过在线版本信息获取单元转到拦截单元:
所述触发判断单元,用于判断是否满足应用程序在线升级的触发条件,是则转到拦截单元,否则转到本地指向单元;
所述触发条件包括应用程序启动、应用程序进入前台、应用程序距离上次更新时间超过预设阈值中的一种或多种。
本实施例提供了一个应用程序在线更新的触发节点,其最佳配置在步骤S23、S24之间,可保障整个逻辑的通畅性,同时又避免App运行后错过在线升级的触发。而触发条件也如本实施例所列举可采用单一或多种结合的触发机制。通过配备在线升级触发机制,可避免App过于频繁进行与支持服务器的在线平凡验证,既降低支持服务器的压力,也提升App的运行流畅性。
实施例九
上述中,所述功能模块的资源文件包括js(JavaScript)、css、图片、html、字体中的一种或多种;所述版本信息与功能模块的资源文件对应。
作为html5语言编写的功能模块,其资源文件会根据实际情况配置不同类型,上述是是常见几种资源文件,通常上述种类的资源文件作用在于:
js(JavaScript):实现页面业务逻辑;
CSS:控制页面展示样式;
图片:页面上面显示的图片;
HTML:展示给用户的页面;
字体:展示截面的字体样式。
对应的,由于版本信息在本实施例中更为细致的与功能模块中的具体资源文件对应,因此在应用访问模块中也需要做对应调整:
比较单元,用于通过比较请求访问功能模块的资源文件的本地的版本信息与线上的版本信息是否相同,否则转到转指向单元,是则转到本地指向单元。
本实施例中,版本信息进一步细化与功能模块中的资源文件对应。从而使得整个应用程序在线升级过程中能细化到具体功能模块中的资源。不仅优化了采用本发明方法下应用程序中HTML5的功能模块的更新验证细度,有效提升用户体验。
需要说明的是,本实施例中不限定版本信息与资源文件对应的方式,其对应关系可根据需要采用分类对应,即js、css、图片、html、字体等一种类型作为一类,建立一个版本信息,如:
资源文件类型 | 版本信息 |
所有js | 第一版本信息 |
所有css | 第二版本信息 |
所有图片 | 第三版本信息 |
所有html | 第四版本信息 |
所有字体 | 第五版本信息 |
也可以进一步细化与资源文件一一对应,即:
实施例十
进一步的,所述版本信息为与功能模块的资源文件对应内容的MD5值;
所述应用访问模块中,所述比较单元,通过比较请求访问功能模块的资源文件的本地的版本信息与线上的版本信息中的MD5值是否相同,否则转到转指向单元,是则转到本地指向单元;
所述版本信息更新单元、用于对应更新该功能模块的本地的版本信息,而后返回步骤S23的对应内容MD5值,而后转到本地指向单元。
本实施例中,采用对资源文件内容形成MD5值方式,进而将该MD5作为功能模块的资源文件比较的基准——即版本信息。
习知的,MD5是Message Digest Algorithm MD5(中文名为消息摘要算法第五版)的简称,其为计算机安全领域广泛使用的一种散列函数,本生广泛应用与提供消息的完整性保护。且具备以下四个优点:
1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
2、容易计算:从原数据计算出MD5值很容易。
3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
对于本专利技术而言,采用功能模块的资源文件内容作为MD5运算输入进而得到固定长度的MD5值,再应用于比较,不仅可确保一致对比的准确性、安全性,且可大大减少对比计算工作量,进而提升对比速度,提升用户体验。
实施例十一
上述中,所述应用访问模块中,本地版本信息加载单元用于将本地的版本信息加载在内存中;
在线版本信息获取单元中将获取的线上的版本信息加载在内存中;
比较单元,用于通过比较请求访问功能模块的资源文件在内存中的本地的版本信息与线上的版本信息中的MD5值是否相同,否则转到转指向单元,是则转到本地指向单元;
版本信息更新单元,用于对应更新该功能模块的本地的版本信息,而后返回步骤S23的对应内容MD5值后保存在本地,而后转到本地指向单元。
本实施例中,通过将本地加载和在线获取的版本信息预先加载在内存中,利用内存超高速的交换能力,进而大幅提高两者比对的效率,对应时下日益复杂庞大的应用程序而言可大幅提高运行效率。
但对应在完成静默更新后,需要将版本信息更新,同时保存到本地存储中,不能仅放在内存中,以免App关闭损失更新数据
实施例十二
进一步的,还包括版本信息文件,所述版本信息文件与功能模块相对应,其包含对应功能模块的资源文件的访问路径及版本信息;
在应用程序打包模块中,
所述存放单元,用于在应用程序的支持服务器上存放对应功能模块的资源文件与包含版本信息的版本信息文件;
在应用访问模块中,
所述拦截单元,用于应用程序拦截所有功能模块的资源文件访问请求,获取访问路径;
所述比较单元具体包括,
版本信息获取子单元,用于根据请求访问功能模块的访问路径作为索引从本地的版本信息文件中获取对应版本信息;用于根据请求访问功能模块的访问路径作为索引从线上的版本信息文件中获取对应版本信息;
比较子单元,用于比较请求访问功能模块的资源文件的本地的版本信息与线上的版本信息是否相同,否则转到转指向单元,是则转到本地指向单元;
所述更新单元,用于对应更新该功能模块的本地的版本信息文件中的版本信息,而后返回在线版本信息获取单元或触发判断单元。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种移动平台应用程序智能在线升级方法,其特征在于:包括,
应用程序打包流程,包括步骤:
S11)、将各功能模块的初始版本及对应版本信息打包形成应用程序发布;
所述功能模块由html5语言编写,其包含有资源文件;
S12)、在应用程序的支持服务器上存放对应功能模块的资源文件与版本信息;
应用访问流程,包括步骤:
S21)、应用程序启动;
S22)、扫描加载应用程序的功能模块保存在本地的版本信息;
S23)、获取支持服务器上对应应用程序的各个功能模块的线上的版本信息;
S24)、应用程序拦截所有功能模块的资源文件访问请求;
S25)、比较请求访问功能模块的本地的版本信息与线上的版本信息是否相同,否则转到步骤S26,是则转到步骤S29;
S26)、将请求访问功能模块的资源文件访问路径指向支持服务器;
S27)、从支持服务器将请求访问功能模块的资源文件进行运行展示并更新保存至应用程序本地;
S28)、对应更新该功能模块的本地的版本信息,而后返回步骤S23;
S29)、将请求访问功能模块的资源文件访问路径指向本地的资源文件,而后返回步骤S23。
2.如权利要求1所述的移动平台应用程序智能在线升级方法,其特征在于:还包括,应用程序更新流程,包括步骤:
S31)、当应用程序的功能模块发生变化时,重新构建功能模块并更新对应的版本信息;
S32)、将重新构建的功能模块的资源文件及版本信息更新至支持服务器。
3.如权利要求1所述的移动平台应用程序智能在线升级方法,其特征在于:所述步骤S22和S23之间还包括步骤:
S223)、判断是否满足应用程序在线升级的触发条件,是则转到步骤S23;
所述触发条件包括应用程序启动、应用程序进入前台、应用程序距离上次更新时间超过预设阈值中的一种或多种;
所述步骤S28,步骤S29后返回步骤S223。
4.如权利要求1所述的移动平台应用程序智能在线升级方法,其特征在于:所述功能模块的资源文件包括js、css、图片、html、字体中的一种或多种;所述版本信息与功能模块的资源文件对应;
所述应用访问流程中,步骤S25,通过比较请求访问功能模块的资源文件的本地的版本信息与线上的版本信息是否相同,否则转到步骤S26,是则转到步骤S29。
5.如权利要求4所述的移动平台应用程序智能在线升级方法,其特征在于:所述版本信息为与功能模块的资源文件对应内容的MD5值;
所述应用访问流程中,步骤S25,通过比较请求访问功能模块的资源文件的本地的版本信息与线上的版本信息中的MD5值是否相同,否则转到步骤S26,是则转到步骤S29;
所述步骤S28)、对应更新该功能模块的本地的版本信息的对应内容MD5值。
6.如权利要求5所述的移动平台应用程序智能在线升级方法,其特征在于:所述应用访问流程中,步骤S22将本地的版本信息加载在内存中;
步骤S23将获取的线上的版本信息加载在内存中;
步骤S25,通过比较请求访问功能模块的资源文件在内存中的本地的版本信息与线上的版本信息中的MD5值是否相同,否则转到步骤S26,是则转到步骤S29;
步骤S28)、对应更新该功能模块的本地的版本信息的对应内容MD5值后保存在本地。
7.如权利要求4-6任意一项所述的移动平台应用程序智能在线升级方法,其特征在于:包括版本信息文件,所述版本信息文件与功能模块相对应,其包含对应功能模块的资源文件的访问路径及版本信息;
在应用程序打包流程中,
所述步骤S12)在应用程序的支持服务器上存放对应功能模块的资源文件与包含版本信息的版本信息文件;
在应用访问流程中,
所述步骤S24,应用程序拦截所有功能模块的资源文件访问请求,获取访问路径;
所述步骤S25具体包括步骤,
S251)、根据请求访问功能模块的访问路径作为索引从本地的版本信息文件中获取对应版本信息;
根据请求访问功能模块的访问路径作为索引从线上的版本信息文件中获取对应版本信息;
S252)比较请求访问功能模块的资源文件的本地的版本信息与线上的版本信息是否相同,否则转到步骤S26,是则转到步骤S29;
所述步骤S28,更新该功能模块的本地的版本信息文件中的版本信息。
8.如权利要求1-7任意一项所述的移动平台应用程序智能在线升级方法,其特征在于:所述版本信息采用AES加密;所述应用访问流程中,
步骤S22后,包括对加载的本地的版本信息进行AES解密的步骤;
步骤S23后,包括对获取的线上的版本信息进行AES解密的步骤;
步骤S28后,包括对更新的本地的版本信息进行AES加密的步骤。
9.一种移动平台应用程序智能在线升级装置方法,其特征在于:包括,
应用程序打包模块,包括:
发布单元,用于将各功能模块的初始版本及对应版本信息打包形成应用程序发布;所述功能模块由html5语言编写,其包含有相关资源文件;
存放单元,用于在应用程序的支持服务器上存放对应功能模块的资源文件与版本信息;
应用程序更新模块,包括:
重建单元,用于当应用程序的功能模块发生变化时,重新构建功能模块并更新对应的版本信息;
线上更新单元,用于将重新构建的功能模块的资源文件及版本信息更新至支持服务器;
应用访问模块,包括:
启动单元,用于应用程序启动;
本地版本信息加载单元,用于扫描加载应用程序的功能模块保存在本地的版本信息;
在线版本信息获取单元,用于获取支持服务器上对应应用程序的各个功能模块的线上的版本信息;
拦截单元,用于应用程序拦截所有功能模块的资源文件访问请求;
比较单元,用于比较请求访问功能模块的本地的版本信息与线上的版本信息是否相同,否则转到转指向单元,是则转到本地指向单元;
转指向单元,用于将请求访问功能模块的资源文件访问路径指向支持服务器;
更新单元,用于从支持服务器将请求访问功能模块的资源文件进行运行展示并更新保存至应用程序本地;
版本信息更新单元,用于对应更新该功能模块的本地的版本信息,而后返回在线版本信息获取单元;
本地指向单元,用于将请求访问功能模块的资源文件访问路径指向本地的资源文件,而后返回在线版本信息获取单元。
10.如权利要求9所述的移动平台应用程序智能在线升级装置,其特征在于:还包括版本信息文件,所述版本信息文件与功能模块相对应,其包含对应功能模块的资源文件的访问路径及版本信息;
在应用程序打包模块中,
所述存放单元,用于在应用程序的支持服务器上存放对应功能模块的资源文件与包含版本信息的版本信息文件;
在应用访问模块中,
所述拦截单元,用于应用程序拦截所有功能模块的资源文件访问请求,获取访问路径;
所述比较单元具体包括,
版本信息获取子单元,用于根据请求访问功能模块的访问路径作为索引从本地的版本信息文件中获取对应版本信息;用于根据请求访问功能模块的访问路径作为索引从线上的版本信息文件中获取对应版本信息;
比较子单元,用于比较请求访问功能模块的资源文件的本地的版本信息与线上的版本信息是否相同,否则转到转指向单元,是则转到本地指向单元;
所述更新单元,用于对应更新该功能模块的本地的版本信息文件中的版本信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810745284.5A CN108984201A (zh) | 2018-07-09 | 2018-07-09 | 移动平台版本智能在线升级方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810745284.5A CN108984201A (zh) | 2018-07-09 | 2018-07-09 | 移动平台版本智能在线升级方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108984201A true CN108984201A (zh) | 2018-12-11 |
Family
ID=64536411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810745284.5A Pending CN108984201A (zh) | 2018-07-09 | 2018-07-09 | 移动平台版本智能在线升级方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108984201A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110221855A (zh) * | 2019-06-20 | 2019-09-10 | 河南蜻蜓云智能科技有限公司 | 一种app与服务器协同更新和离线运行的方法 |
CN113157311A (zh) * | 2021-04-08 | 2021-07-23 | 上海高顿教育培训有限公司 | 一种基于h5的应用程序版本号控制方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103812894A (zh) * | 2012-11-12 | 2014-05-21 | 中国石油天然气集团公司 | 一种实时监控系统中web发布文件版本的管理方法 |
CN104702631A (zh) * | 2013-12-04 | 2015-06-10 | 航天信息股份有限公司 | 一种客户端软件的升级方法和系统 |
CN105577813A (zh) * | 2015-12-31 | 2016-05-11 | 北京奇艺世纪科技有限公司 | 一种web混合应用的更新方法和系统 |
CN106155742A (zh) * | 2016-06-30 | 2016-11-23 | 百度在线网络技术(北京)有限公司 | 组件更新处理方法及装置 |
CN106371875A (zh) * | 2016-08-31 | 2017-02-01 | 南威软件股份有限公司 | 一种基于html5的手机应用更新机制 |
CN108008971A (zh) * | 2017-12-04 | 2018-05-08 | 科大国创软件股份有限公司 | 一种基于html5的离线压缩包下载实现移动app模块升级的方法 |
-
2018
- 2018-07-09 CN CN201810745284.5A patent/CN108984201A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103812894A (zh) * | 2012-11-12 | 2014-05-21 | 中国石油天然气集团公司 | 一种实时监控系统中web发布文件版本的管理方法 |
CN104702631A (zh) * | 2013-12-04 | 2015-06-10 | 航天信息股份有限公司 | 一种客户端软件的升级方法和系统 |
CN105577813A (zh) * | 2015-12-31 | 2016-05-11 | 北京奇艺世纪科技有限公司 | 一种web混合应用的更新方法和系统 |
CN106155742A (zh) * | 2016-06-30 | 2016-11-23 | 百度在线网络技术(北京)有限公司 | 组件更新处理方法及装置 |
CN106371875A (zh) * | 2016-08-31 | 2017-02-01 | 南威软件股份有限公司 | 一种基于html5的手机应用更新机制 |
CN108008971A (zh) * | 2017-12-04 | 2018-05-08 | 科大国创软件股份有限公司 | 一种基于html5的离线压缩包下载实现移动app模块升级的方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110221855A (zh) * | 2019-06-20 | 2019-09-10 | 河南蜻蜓云智能科技有限公司 | 一种app与服务器协同更新和离线运行的方法 |
CN113157311A (zh) * | 2021-04-08 | 2021-07-23 | 上海高顿教育培训有限公司 | 一种基于h5的应用程序版本号控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8516037B2 (en) | Methods for dynamic partitioning of applications in client-server environments | |
CN107168999A (zh) | 一种页面更新方法及装置 | |
WO2016026384A1 (zh) | 一种客户端页面显示方法、装置及系统 | |
CN108021614A (zh) | 一种用于页面动态加载的方法及系统 | |
CN110083783A (zh) | 一种分享链接的方法、装置、存储介质及计算机设备 | |
CN108287758A (zh) | 一种应用资源管理方法、使用方法及装置 | |
CN110334297A (zh) | 终端页面的加载方法、终端、服务器及存储介质 | |
US10908971B1 (en) | Method and system for generating a customizable connector | |
US11379830B2 (en) | Method for executing smart contract, blockchain node, and storage medium | |
CN104063225B (zh) | 锁屏主题开发方法及装置 | |
US11385917B2 (en) | Method for executing smart contract and blockchain node | |
US11301222B2 (en) | Method for executing smart contract, blockchain node, and storage medium | |
US11080065B1 (en) | Configuration transformation and delivery | |
CN105378740A (zh) | 捆绑包签名 | |
CN109885990A (zh) | 脚本管理方法 | |
CN103841117A (zh) | 一种基于Cookie机制的JAAS登录方法和服务器 | |
CN108984201A (zh) | 移动平台版本智能在线升级方法及装置 | |
US20230308290A1 (en) | Data sharing method and electronic device | |
CN112241298A (zh) | 页面显示方法及装置、存储介质、电子装置 | |
WO2015057816A1 (en) | Method and system for adaptive loading of application | |
US8407678B2 (en) | Method of array interception using data-flow analysis | |
CN109408486A (zh) | 文件发布方法和系统、发布服务器和文件生成装置 | |
US11327732B2 (en) | Method for executing smart contract, blockchain node, and storage medium | |
US20150220549A1 (en) | Method and device for filtering garbage data | |
CN110825373A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181211 |