[发明专利]一种Android系统无感知应用安装升级的方法有效
申请号: | 201810179483.4 | 申请日: | 2018-03-05 |
公开(公告)号: | CN108491216B | 公开(公告)日: | 2021-07-13 |
发明(设计)人: | 王伟;和楠 | 申请(专利权)人: | 北京指掌易科技有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65;G06F9/445 |
代理公司: | 北京东方汇众知识产权代理事务所(普通合伙) 11296 | 代理人: | 张淑贤 |
地址: | 100085 北京市海淀区信*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 android 系统 感知 应用 安装 升级 方法 | ||
一种Android系统无感知应用安装升级的方法,包括如下步骤:先检测是否有新的升级包,若有,下载并保存新实体应用包到相关路径,之后升级;先调用宿主应用的attachBaseContext方法;再替换宿主ActivityThread中的所有的Application为实体应用的Application;下一步为替换资源;之后完善执行实体应用的Application的attach()方法以及执行相关的installContentProviders()方法;之后在执行宿主的onCreate()方法时反射执行实体的Application的onCreate()方法;替换完成。
技术领域
本发明涉及移动终端应用领域,尤其涉及一种Android系统无感知应用安装升级的方法。
背景技术
一个android应用发布后如果突然出现bug需要紧急修复的话,普通的打包、发布、安装、升级流程很繁琐而且需要用户介入点击安装,效果很不好。因此免安装升级成为一个比较迫切的需求。免安装升级可以帮助我们在用户无感知的情况下修复应用存在的bug。
目前市面上此类热修复框架不少,比较有名的有支付宝的andfix,nuwa方案,微信的Tinker热修复方案等。
支付宝的andfix采用的是native层hook的方案,主要是通过替换方法的方式进行热修复,好处就是补丁包小而且可以立即生效,但是对平台的兼容性较差,且只能给予方法进行修补。
nuwa方案采用java层替换类的方式来,的兼容性比andfix要好很多,其主要是提前加载插件的类,并将其放在BaseDexClassLoader类端pathList中的dexElements数组的前面。
微信的方案是下载一个差量的dex包,在客户dexElements后台进行patch生成一个完整的包,然后整体将此完整的dex文件直接替换到数组中,微信的方案是在nuwa方案上的一种完善,微信方案下载的补丁包更小,nuwa和微信的方案都需要重启应用。
Andfix和nuwa热修复方案都是只适用于代码修复的,并不包含资源更新,微信tinker号称已经支持资源的加载。
目前市面上还有一种360的免安装方案,就是DroidPlugin,这个方案是既可以加载实体应用的dex也可以加载其资源。DroidPlugin是动态代理了ActivityManager、PackageManager等系统服务在应用中的远程对象,来启动四大组件,使用动态加载dex和资源的方式来加载实体app。
综上,使用类似DroidPlugin的思路来处理热修复的问题,同时又没有动态代理系统各种服务,主要使用动态加载的方式来进行免安装升级,成为目前的研究目标。
发明内容
为解决上述技术问题,本发明提供了一种Android系统无感知应用安装升级的方法,无需动态代理Android系统的各种服务,使用动态加载的方式来进行免安装升级。
一种Android系统无感知应用安装升级的方法,其中,具体包括如下步骤:
1)、打包创建宿主应用:
1-1)、给宿主应用定义;
1-2)、引用安卓系统的Application类;
引用安卓系统的content.ComponentCallbacks类;
引用安卓系统的content.Context类;
引用安卓系统的content.pm.ApplicationInfo类;
引用安卓系统的content.pm.PackageManager类;
引用安卓系统的content.res.AssetManager类;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京指掌易科技有限公司,未经北京指掌易科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810179483.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种无人机固件保护系统
- 下一篇:一种配置文件的升级方法和设备