[发明专利]一种针对android应用的bug修复和持续交付方案在审
申请号: | 201710038262.0 | 申请日: | 2017-01-18 |
公开(公告)号: | CN106874195A | 公开(公告)日: | 2017-06-20 |
发明(设计)人: | 朱洪龙 | 申请(专利权)人: | 环球智达科技(北京)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F9/44 |
代理公司: | 北京华仲龙腾专利代理事务所(普通合伙)11548 | 代理人: | 李静 |
地址: | 100000 北京市石景*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 针对 android 应用 bug 修复 持续 交付 方案 | ||
技术领域
本发明涉及计算机领域,具体是一种针对android应用的bug修复和持续交付方案。
背景技术
Android系统版本众多,机型众多,每次发布一个版本都是需要较长的时间。Android应用版本升级至少需要两周才能达到80%的升级率,严重阻碍了版本迭代速度。也导致市场上App版本分散,处理bug和投诉等也越来越麻烦。
近一两年采用Android热补丁框架解决上述问题非常热门。从开始360公司研发的动态下发lua脚本,到后来出现的各种方案。
早期的补丁框架偏向于以代码修复为主,主要分为两大类:nativehook方案和Multidex方案。
native hook方案如阿里巴巴的AndFix和Dexposed。Multidex方案如Qzone。切入点都是替换掉将要执行的代码。基于Qzone方案的思路,出现了nuwa这个比较完善的库,工具链比较完善。
但是上述两种方案都存在一定的缺陷,AndFix只能修改方法、不能修改字段、不能新增类等问题,其库本身难于维护(需要依赖外部开源力量进行维护),nuwa仅支持更新Java代码,不能更新资源和so文件,满足不了需求。
发明内容
本发明的目的在于提供一种针对android应用的bug修复和持续交付方案,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种针对android应用的bug修复和持续交付方案,其主要步骤如下:
101:真实的Application类是MyApplication,在编译期间自动修改AndroidManifest.xml文件,把MyApplication替换为MyNewApplication;
102:App启动后由MyNewApplication加载相应的dex文件后,再将控制权交回给MyApplication。
作为本发明进一步的方案:所述MyNewApplication加载相应的dex文件的方法如下:假设Android安装包中dex文件包含三个文件:classes.dex、classes2.dex和classes3.dex;dex文件的classes.dex充当的角色就是加载器,负责启动App,并且从App加载资源加载后面的两个dex文件,classes2.dex和classes3.dex;使App启动需要用到的所有类都集中在classes.dex中。
作为本发明再进一步的方案:所述App加载资源是依赖Context#getResources函数返回的Resources对象。
与现有技术相比,本发明的有益效果是:
本发明通过把APP应用仅仅作为一个加载器。系统启动App之后,加载器决定将要运行的代码和资源的位置。当有新功能或者有bug修复补丁需要推送给用户时,只需要下载对应的文件,通过替换加载器内容即可。即将一个应用app的功能分解为多个部分,核心APP为一个加载模块,其他功能均作为加载模块的内容,当某一个模块出现了问题,或者需要增加删除某一个模块时,只需要通知加载器处理对应的模块即可。此方法可以较为简单便捷的解决业务模块中的bug,以及版本的快速迭代。
具体实施方式
下面结合具体实施方式对本发明的技术方案作进一步详细地说明。
一种针对android应用的bug修复和持续交付方案,其主要步骤如下:Android应用中Application类由于启动就被加载而不能被更新,我们通过代理Application,控制Application从新dex文件中加载。
101:真实的Application类是MyApplication,在编译期间自动修改AndroidManifest.xml文件,把MyApplication替换为MyNewApplication;所述MyNewApplication是App的入口Application;
102:App启动后由MyNewApplication加载完相应的dex文件后,再将控制权交回给MyApplication;
所述MyNewApplication加载相应的dex文件的方法如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于环球智达科技(北京)有限公司,未经环球智达科技(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710038262.0/2.html,转载请声明来源钻瓜专利网。