[发明专利]应用程序的动态更新方法和装置在审
申请号: | 201810504114.8 | 申请日: | 2018-05-23 |
公开(公告)号: | CN108762800A | 公开(公告)日: | 2018-11-06 |
发明(设计)人: | 王广 | 申请(专利权)人: | 北京五八信息技术有限公司 |
主分类号: | G06F8/658 | 分类号: | G06F8/658 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 杨泽;刘芳 |
地址: | 100080 北京市海淀区学清*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用程序 脚本文件 补丁包 方法和装置 动态更新 校验 资源包 应用程序启动 程序加载 逻辑功能 系统版本 动态化 兼容性 加载 覆盖 发布 保证 | ||
本发明实施例提供一种应用程序的动态更新方法和装置,该方法包括:应用程序启动后,获取应用程序的资源包,校验资源包的目录下是否存在新的JS补丁包,若存在,则确定JS补丁包中的脚本文件版本与应用程序正在使用的脚本文件版本是否相同,若不同,则加载JS补丁包中的脚本文件,运行应用程序。该方案在程序加载过程中对补丁包进行校验决定使用补丁包中的脚本文件还是原来的脚本文件运行应用程序,能够不依赖发布新的版本来实现逻辑功能和界面的动态化,能及时的覆盖最新的版本,可以保证足够的稳定性和兼容性,尽量不受系统版本的影响。
技术领域
本发明涉及计算机技术领域,尤其涉及一种应用程序的动态更新方法和装置。
背景技术
随着智能终端设备的广泛应用,终端设备上的应用程序(Application,APP)也随着用户的需求变动,APP需要根据用户的需求进行资源更新。
现有技术中,提供一种插件化的方式对APP进行动态更新,该方式可以在不重新安装新包的情况下,来动态改变应用程序的内容。主要原理是使用Android内部的ClassLoader来动态加载新的类,来实现动态化。很多应用程序可以下载可选的插件来扩展程序的内容。还提供一种热修复的方式对APP进行动态更新,该方式多用于及时修复线上的已知问题,而不依赖发布新的版本。原理跟插件化类似,不同的是热修复可以动态修改原有的类,甚至有的框架可以直接修改具体的资源文件。
然而,插件化一般应用于动态下发新的插件,即意味只能动态添加,要实现的动态更新成本较高,稳定性不足。热修复强烈依赖于已添加的空白组件且实现极为复杂,稳定性上有欠缺,性能消耗比较大,综上所述,目前的APP动态更新的方案更新成本较高,且稳定性较差。
发明内容
本发明提供一种应用程序的动态更新方法和装置,用于解决目前的APP动态更新的方案更新成本较高,且稳定性较差的问题。
本发明第一方面提供一种应用程序的动态更新方法,包括:
根据应用程序的客户端发送的接口请求,使用预先配置的灰度策略,生成与所述接口请求对应的配置文件;
根据所述配置文件获取JS补丁包,所述JS补丁包包括更新的所述应用程序的脚本文件;
将所述JS补丁包发送给所述客户端。
可选的,所述接口请求至少包括所述应用程序的版本号、渠道号,用户的会员信息、城市信息中的至少一项。
本发明第二方面提供一种应用程序的动态更新方法,包括:
应用程序启动后,获取所述应用程序的资源包;
校验所述资源包的目录下是否存在新的JS补丁包;
若存在,则确定所述JS补丁包中的脚本文件版本与所述应用程序正在使用的脚本文件版本是否相同;
若所述JS补丁包中的脚本文件版本与所述应用程序正在使用的脚本文件版本不同,则加载所述JS补丁包中的脚本文件,运行所述应用程序。
可选的,所述方法还包括:
若所述JS补丁包中的脚本文件版本与所述应用程序正在使用的脚本文件版本相同,则加载所述本地使用的脚本文件,运行所述应用程序。
可选的,所述方法还包括:
所述应用程序启动后,校验所述应用程序的运行目录中的版本信息;
若所述运行目录中版本信息为空,则从资源文件夹获取所述应用程序的资源包;
若所述运行目录中版本信息不为空,则直接获取所述运行目录中存储的所述资源包。
可选的,所述方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京五八信息技术有限公司,未经北京五八信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810504114.8/2.html,转载请声明来源钻瓜专利网。