[发明专利]一种嵌入式设备程序更新方法在审
申请号: | 201510095694.6 | 申请日: | 2015-03-04 |
公开(公告)号: | CN104615470A | 公开(公告)日: | 2015-05-13 |
发明(设计)人: | 余哲旭;赵大全 | 申请(专利权)人: | 成都维远艾珏信息技术有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京天奇智新知识产权代理有限公司 11340 | 代理人: | 郭霞 |
地址: | 610000 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 嵌入式 设备 程序 更新 方法 | ||
1.一种嵌入式设备程序更新方法,用于更新嵌入式设备的应用程序,其特征在于,包括:
服务器端保存多个应用的多个版本,其中包含最新版本,并计算出不同版本的差异,生成不同的补丁包保存在服务器端,其中每个补丁包的生成用单独的线程来实现;
用户查看嵌入式设备上已安装的所有应用列表,选择需要升级的应用;
嵌入式设备连接服务器,上传设备上已安装的安装包信息;
服务器收到上传的程序列表信息后,与服务器端进行对比,查看是否有最新版本,若发现最新版本并已经合成了补丁包,则进行增量更新,将补丁包的URL发送到设备端;
当用户收到可更新信息时,用Handler发送消息,显示在界面上;
当触发某个应用的下载时,通过应用补丁包的URL下载补丁包,在嵌入式设备通过补丁合成新的安装包并安装。
2.根据权利要求1所述的方法,其特征在于,所述计算出不同版本的差异,生成不同的补丁包保存在服务器端,进一步包括:
定义两个数组newbuf[],oldbuf[],将新旧安装包的文件序列分别写入其中,并分别获得其长度newsize,oldsize;利用LCS找出最大公共子序列;
两个序列对比同一位置的数据,将差异数据写入diffBlock数据段,表示两个序列同一位置的差异数据段;
计算出多余的字符串长度,写入extlen,该extlen表示extblock的长度,extblock表示新包与旧包相比的额外数据段;
将newbuf[j+1,j+1+extlen]写入extblock数据段;
将oldbuf[j+1,j+1+invalidlen]写入ctrlblock,其中invalidlen表示新旧安装包序列对比后,旧安装包中的无效数据段长度;
ctrlblock包含一些记录控制信息的小块,其内容包括从旧包和diffBlock读取的序列长度,从extblock中读取的序列长度,以及从旧包中跳过不读的序列长度;
将各个数据段写入补丁文件中,其中diffBlock与extraBlock经过gzip算法压缩后写入补丁文件中,由于diffBlock记录的是新版程序安装包和旧版程序安装包各个相似段的差异。
3.根据权利要求2所述的方法,其特征在于,所述嵌入式设备通过补丁合成新的安装包,进一步包括:
定义数组oldbuf[]写入旧安装包序列,读取补丁包中ctrlblock中写入的控制信息;
根据对应的控制信息在oldbuf[]与补丁包中交替读取数据,写入newbuf[]中;
基于newbuf[]合成新的安装包序列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都维远艾珏信息技术有限公司,未经成都维远艾珏信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510095694.6/1.html,转载请声明来源钻瓜专利网。