[发明专利]一种Android智能终端系统软件热修复的方法在审
申请号: | 201710129346.5 | 申请日: | 2017-03-06 |
公开(公告)号: | CN107025119A | 公开(公告)日: | 2017-08-08 |
发明(设计)人: | 白智全;孙秀凯;张娜;张琦 | 申请(专利权)人: | 山东大学 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 济南金迪知识产权代理有限公司37219 | 代理人: | 许德山 |
地址: | 250199 山*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 android 智能 终端 系统软件 修复 方法 | ||
1.一种Android智能终端系统软件热修复的方法,依次通过四个模块来完成,该四个模块包括Patch文件获取模块、Patch文件匹配模块、终端下载模块和动态加载模块,该方法具体步骤如下:
1)Patch文件获取模块:
该模块输入端是两个APK,包括原APK和更新后的APK,原APK即是需要修复的原版本系统软件,更新后的APK即是已修复完成的系统软件,一般已修复完成的系统软件版本号比原系统软件版本号高1,APK文件实际可看成一个zip文件,其包括res资源文件和class.dex文件,通过差分比较可以将有差别的文件部分保存到一个HashSet集合变量中,然后通过编译打包生成Patch文件,具体步骤为:
①将原APK和更新后的APK进行差分算法比较,将有差别的文件部分保存到一个集合变量HashSet中;
②通过编译并打包可生成Patch文件;
2)Patch文件匹配模块:
在服务器端将Patch文件进行匹配,匹配信息包括终端型号、终端系统版本号、终端网络区域、Android版本及内核版本,匹配结果用flag表示,flag初始值为false,匹配成功后修改flag标识为true,服务器端将匹配信息注入到Patch文件中,然后进行Patch文件的下发,具体步骤为:
①获取Patch文件所含的系统应用信息,包括应用名称、应用包名、应用签名;
②服务器端根据匹配信息进行Patch文件下发前的匹配,包括终端型号、终端系统版本号、终端网络区域、Android版本、内核版本;
③匹配结果用flag表示,flag初始值为false,匹配成功后修改flag标识为true;
④服务器端将匹配信息注入到Patch文件中,然后进行Patch文件的下发,将Patch文件推送至智能终端;
3)终端下载模块:
当用户打开该系统应用时,首先判断终端当前连接网络是否为本地网络,如果否,则自动配置本地网络,如果是,则不用配置本地网络;随后再判断此时终端处理器是否处于空闲时段,当终端处理器处于空闲时段时,终端从服务器获取匹配标识flag的值和Patch文件,并在后台自动下载,具体步骤为:
①判断当前终端连接的网络是否为本地预设网络,如果是,则直接转入步骤②;如果否,则自动配置本地预设网络,然后转入步骤②;
②判断处理器此时是否处于忙时阈值之下,如果是,则转入步骤③;如果否,则转入步骤②,说明此时处理器正进行多任务执行,不适宜再为处理器增加任务,从而避免处理器崩溃;
③智能终端从服务器获取flag的值和Patch文件,并在后台自动下载;
4)动态加载模块:
Patch文件下载后,首先终端获取Patch文件中的匹配信息,将匹配信息和终端的具体设备信息进行校验,判断Patch文件中的匹配信息和终端的具体设备信息是否相同,如果前后信息相同则校验成功,若不同则说明此终端不在修复范围之内,则将Patch文件删除;校验成功后,待用户第二次启动该系统应用时,或该系统应用通过广播或服务被唤醒重新加载时,系统会先加载Patch文件中的class文件,而不再加载原APK中的class文件,完成软件修复,具体步骤为:
①终端获取Patch文件中的匹配信息和终端的具体设备信息;
②将步骤①中的匹配信息和具体设备信息进行对比,校验二者是否相同,若相同,则转到步骤③;若不同,则删除该Patch文件,流程结束;
③待用户重启该系统软件或者该系统软件被广播或服务唤醒重新加载时,系统会加载Patch文件中的class文件而不去加载原APK中的class文件,完成软件修复,流程结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东大学,未经山东大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710129346.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:摩托车前轮辋(WY125-11)
- 下一篇:开关(0040-K320L)