[发明专利]在QT程序中自动更新的方法及装置有效
申请号: | 201611092244.2 | 申请日: | 2016-12-01 |
公开(公告)号: | CN106648761B | 公开(公告)日: | 2019-04-05 |
发明(设计)人: | 徐超 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65 |
代理公司: | 北京众达德权知识产权代理有限公司 11570 | 代理人: | 刘杰 |
地址: | 430000 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | qt 程序 自动更新 方法 装置 | ||
1.一种在QT程序中自动更新的方法,其特征在于,包括以下步骤:
获取更新信息文件,所述更新信息文件是JSON格式文件,JSON格式文件的树形结构包括三层:第一层为更新信息层,用于保存的信息包括版本号、更新时间、建议版本号、更新大小;第二层为模块信息层,用于保存的信息包括模块名称、版本号、大小;第三层为更新文件信息层,用于保存的信息包括文件名、文件MD5值、文件路径;
通过比较经过解析的所述更新信息文件和对应的本地信息,判断所述对应的本地信息是否需要更新:
如需要更新,则启动更新,使得所述更新文件覆盖对应的本地信息;
如不需要更新,则维持所述本地信息;
其中,判断所述对应的本地信息是否需要更新,包括:
计算本地信息的MD5值并得到第一MD5值,计算所述经过解析的更新信息文件的MD5值并得到第二MD5值,其中,所述第一MD5值与所述第二MD5值是通过动态链接库的更新监听接口的检查回调函数通知主程序的:
若所述第一MD5值与所述第二MD5值不等,则启动更新;
若所述第一MD5值与所述第二MD5值相等,则维持所述本地信息。
2.根据权利要求1所述的在QT程序中自动更新的方法,其特征在于,所述解析所述更新信息文件,得到经过解析的更新信息文件包括以下步骤:
加载所述更新信息文件并返回文本对象和错误值;
对所述返回的文本对象和错误值进行判断:
若所述文本对象不存在错误信息,则通过文本对象返回JSON对象,并采用键值对的形式返回每个字段值,得到所述经过解析的更新信息文件;
若所述文本对象存在错误信息,则更新错误并回调所述错误。
3.根据权利要求1所述的在QT程序中自动更新的方法,定义本地信息的版本号为第一版本号,定义所述经过解析的更新信息文件的版本号为第二版本号,定义所述经过解析的更新信息文件的建议版本号为第三版本号;
其特征在于,
所述通过比较所述经过解析的更新信息文件和对应的本地信息,判断所述对应的本地信息是否需要更新包括以下步骤:
比较所述第一版本号的字符串与所述第二版本号的字符串:
若所述第一版本号的字符串与所述第二版本号的字符串不等,则启动更新;
若所述第一版本号的字符串与所述第二版本号的字符串相等,则维持所述本地信息;
和/或,
比较所述第一版本号的字符串与所述第三版本号的字符串:
若所述第一版本号的字符串与所述第三版本号的字符串不等,则启动更新;
若所述第一版本号的字符串与所述第三版本号的字符串相等,则维持所述本地信息。
4.根据权利要求3所述的在QT程序中自动更新的方法,其特征在于,所述MD5值的计算方法包括以下步骤:
获取待计算文件对象的散列函数对象;
应用所述散列函数对象添加待计算文件数据;
根据所述待计算文件数据计算并返回所述待计算文件的MD5值;
其中,所述第一MD5值与所述第二MD5值是通过动态链接库的更新监听接口的检查回调函数通知主程序的。
5.根据权利要求1所述的在QT程序中自动更新的方法,其特征在于,还包括以下步骤:
获取相邻两次启动更新的时刻T1和T2;
计算所述相邻两次启动更新的时间差t=|T2-T1|;
比较相邻两次启动更新的时间差t与更新阈值t0的大小关系:
当t>t0时,启动更新;
当t≤t0时,拒绝更新。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611092244.2/1.html,转载请声明来源钻瓜专利网。