[发明专利]一种软件升级方法及装置有效
申请号: | 201110028778.X | 申请日: | 2011-01-26 |
公开(公告)号: | CN102622241A | 公开(公告)日: | 2012-08-01 |
发明(设计)人: | 马斌 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京派特恩知识产权代理事务所(普通合伙) 11270 | 代理人: | 程立民;张颖玲 |
地址: | 518044 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 升级 方法 装置 | ||
技术领域
本发明涉及计算机技术领域,尤其涉及一种软件的升级方法及装置。
背景技术
目前,基于移动终端的操作系统的应用软件在更新时通常采用的是整体更新方式,即直接将完整的更新包放在应用软件网上商店或官方提供下载,移动终端首先卸载旧版本的应用软件,然后下载安装新版本的应用软件。这样的缺陷是,应用软件整体更新占用的流量过大,用户需要频繁手动下载和更新,为用户带来不便。
以Android系统为例,Android系统本身提供了一套程序更新的机制,通过把程序发布到appmarket,用户从appmarket下载应用。当有新版本发布到appmarket时,用户会收到通知,让用户选择是否升级。但是一个Apk包有数兆大小,如果因为某个小变更就要用户下载完整的apk进行安装,不仅会浪费用户流量,而且如果更新过频繁会对用户形成骚扰。还有在某些特殊情况下,必须让用户更新部分程序逻辑才能正常使用(如登录逻辑,后台需要变更,前台需要重新发布版本来兼容),使用android系统提供的更新方式明显不合适。
发明内容
有鉴于此,本发明的主要目的在于提供一种软件的升级方法及装置,用于基于解决移动终端的应用软件更新占用网络流量大,用户需要频繁手动下载和更新,为用户带来不便的技术问题。
为达到上述目的,本发明的技术方案是这样实现的:
一种软件升级方法,该方法包括:
将主程序中完成具体程序功能的功能代码提取出来,对其进行封装形成实现类,并抽象出调用接口,主程序通过所述调用接口调用所述实现类,以完成具体的程序功能;
当需要对功能代码进行升级时,主程序获取新版本的实现类,用新版本的实现类替换旧版本的实现类。
进一步地,主程序判断是否有新版本的实现类需要升级的方法为:
所述实现类存储于更新库文件中,主程序在启动时,从服务器获取版本控制信息,将其与本地的版本控制信息进行比对,当版本不一致时,从服务器下载包含新版本的实现类的更新库文件,用更新库文件替换本地保存的包含旧版本实现类的更新库文件并更新本地版本控制信息;
所述版本控制信息至少包含:当前版本号、数据包签名、更新库文件的网络地址及名称、更新库文件所包含的实现类列表、调用接口的名称、实现类的名称。
进一步地,在编译新版本的实现类时,将包含旧版本实现类的项目作为包含新版本实现类的项目的一个引用,并且在编译新版本实现类的项目时,通过配置编译选项过滤掉新版本实现类和旧版本实现类都使用到的会导致重名冲突的类,使得新版本的实现类文件中仅仅包含自己的逻辑代码。
进一步地,在主程序中设置默认的与所述功能代码对应的实现类,用于在主程序加载更新库文件中与所述功能代码对应的新版本的实现类失败时,启用该默认的实现类。
进一步地,当主程序发现有新版本的实现类时,提示用户选择是否更新,或自动执行静默更新。
进一步地,所述方法应用于基于Android操作系统及编程环境开发的程序。
基于本发明提供的软件升级方法,本发明还提出一种软件升级装置,该装置包括:
主程序,用于通过调用接口调用实现类;
调用接口,用于调用实现类;所述调用接口由所述功能代码抽象后获得;
实现类,用于继承所述调用接口,实现具体的程序功能,通过对完成具体程序功能的功能代码进行封装获得;
当需要对所述功能代码升级时,主程序获取新版本的实现类,用新版本的实现类替换旧版本的实现类。
进一步地,所述主程序中包含:
版本控制模块,用于在主程序启动时,从服务器获取版本控制信息,将其与本地的版本控制信息进行比对,判断所述功能代码是否需要更新,在需要更新时还负责下载包含新版本实现类的更新库文件,用更新库文件替换本地保存的包含旧版本实现类的更新库文件并更新本地版本控制信息;
程序加载模块,用于根据版本控制信息,通过调用接口加载与功能代码对应的实现类。
进一步地,所述版本控制模块通过版本控制信息的比对发现所述功能代码有更新时,提示用户选择是否更新,在用户选择更新或主程序采取静默更新方式的情况下,所述版本控制模块执行更新操作;
所述程序加载模块在加载更新库文件中的实现类失败时,加载主程序中设置的默认的与所述功能代码对应的实现类。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110028778.X/2.html,转载请声明来源钻瓜专利网。