[发明专利]一种软件升级方法及装置有效
申请号: | 201110028778.X | 申请日: | 2011-01-26 |
公开(公告)号: | CN102622241A | 公开(公告)日: | 2012-08-01 |
发明(设计)人: | 马斌 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京派特恩知识产权代理事务所(普通合伙) 11270 | 代理人: | 程立民;张颖玲 |
地址: | 518044 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 升级 方法 装置 | ||
1.一种软件升级方法,其特征在于,该方法包括:
将主程序中完成具体程序功能的功能代码提取出来,对其进行封装形成实现类,并抽象出调用接口,主程序通过所述调用接口调用所述实现类,以完成具体的程序功能;
当需要对功能代码进行升级时,主程序获取新版本的实现类,用新版本的实现类替换旧版本的实现类。
2.根据权利要求1所述的方法,其特征在于,主程序判断是否有新版本的实现类需要升级的方法为:
所述实现类存储于更新库文件中,主程序在启动时,从服务器获取版本控制信息,将其与本地的版本控制信息进行比对,当版本不一致时,从服务器下载包含新版本的实现类的更新库文件,用更新库文件替换本地保存的包含旧版本实现类的更新库文件并更新本地版本控制信息;
所述版本控制信息至少包含:当前版本号、数据包签名、更新库文件的网络地址及名称、更新库文件所包含的实现类列表、调用接口的名称、实现类的名称。
3.根据权利要求1所述的方法,其特征在于,
在编译新版本的实现类时,将包含旧版本实现类的项目作为包含新版本实现类的项目的一个引用,并且在编译新版本实现类的项目时,通过配置编译选项过滤掉新版本实现类和旧版本实现类都使用到的会导致重名冲突的类,使得新版本的实现类文件中仅仅包含自己的逻辑代码。
4.根据权利要求1所述的方法,其特征在于,
在主程序中设置默认的与所述功能代码对应的实现类,用于在主程序加载更新库文件中与所述功能代码对应的新版本的实现类失败时,启用该默认的实现类。
5.根据权利要求1所述的方法,其特征在于,
当主程序发现有新版本的实现类时,提示用户选择是否更新,或自动执行静默更新。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法应用于基于Android操作系统及编程环境开发的程序。
7.一种软件升级装置,其特征在于,该装置包括:
主程序,用于通过调用接口调用实现类;
调用接口,用于调用实现类;所述调用接口由所述功能代码抽象后获得;
实现类,用于继承所述调用接口,实现具体的程序功能,通过对完成具体程序功能的功能代码进行封装获得;
当需要对所述功能代码升级时,主程序获取新版本的实现类,用新版本的实现类替换旧版本的实现类。
8.根据权利要求7所述的装置,其特征在于,所述主程序中包含:
版本控制模块,用于在主程序启动时,从服务器获取版本控制信息,将其与本地的版本控制信息进行比对,判断所述功能代码是否需要更新,在需要更新时还负责下载包含新版本实现类的更新库文件,用更新库文件替换本地保存的包含旧版本实现类的更新库文件并更新本地版本控制信息;
程序加载模块,用于根据版本控制信息,通过调用接口加载与功能代码对应的实现类。
9.根据权利要求8所述的装置,其特征在于,
所述版本控制模块通过版本控制信息的比对发现所述功能代码有更新时,提示用户选择是否更新,在用户选择更新或主程序采取静默更新方式的情况下,所述版本控制模块执行更新操作;
所述程序加载模块在加载更新库文件中的实现类失败时,加载主程序中设置的默认的与所述功能代码对应的实现类。
10.根据权利要求7所述的装置,其特征在于,
在编译新版本的实现类时,将包含旧版本实现类的项目作为包含新版本实现类的项目的一个引用,并且在编译新版本实现类的项目时,通过配置编译选项过滤掉新版本实现类和旧版本实现类都使用到的会导致重名冲突的类,使得新版本的实现类文件中仅仅包含自己的逻辑代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110028778.X/1.html,转载请声明来源钻瓜专利网。