nuwa总结
来源:互联网 发布:手机淘宝昵称怎么修改 编辑:程序博客网 时间:2024/06/13 05:27
nuwa是什么?
nuwa是一个开源的android应用热修复方案,通过替换存在bug的类,能够在不重新安装app的情况下,修复app存在的问题.
nuwa的基本原理
唯一的一个Application对象必然是由一个ClassLoader对象加载进来的(实际是一个PathClassLoader对象),在此Application对象初始化时(此时绝大部分class还没有加载进来),寻找到该PathClassLoader对象,通过反射方式找到PathClassLoader对象的dexElements数组(里面元素的顺序决定着加载类时dex的顺序),将patch dex文件插入到数组最前面.
nuwa的执行流程
- 将修复了bug的若干类的class文件打包成patch dex文件(gradle实现).
- 为了防止此方案造成的崩溃问题,需要通过ASM使得每个dex文件都引用一个占位类(此机制在apk打包时采用gradle插件实现)
一些验证
- 如果先调用一次需要修复的类,再使用nuwa进行修复(如下代码所示),结果:修复失败.原因:原始类已经加载进来了
Class c=Hello.class;
Nuwa.loadPatch(this, Environment.getExternalStorageDirectory().getAbsolutePath().concat(“/patch.jar”));
- 如果将dexElements内容置为空呢?结果:直接崩溃.原因:加载类失败
- 如果在所有类都加载进来之后将dexElements内容置为空呢?结果:能够正常运行.
nuwa的特点
- 需要应用重启修复才能生效.
- 无法调用原始方法(热修复一般不需要调用原始方法).
参考资料
- https://github.com/jasonross/Nuwa
- http://mp.weixin.qq.com/s?__biz=MzI1MTA1MzM2Nw==&mid=400118620&idx=1&sn=b4fdd5055731290eef12ad0d17f39d4a&scene=0#wechat_redirect
- http://blog.csdn.net/sbsujjbcy/article/details/50812674
0 0
- nuwa总结
- NUWA
- Nuwa热修复实现
- Nuwa热修复实现
- Nuwa(女娲)-热修复
- 热修复框架Nuwa
- 热补丁Nuwa配置说明
- Android热修复-Nuwa使用
- Android热更新框架NuWa
- 基于Nuwa实现Android自动化HotFix
- Nuwa热修复在项目中应用
- Android开发之nuwa热修复
- 基于Nuwa实现Android自动化HotFix
- 热修复框架nuwa的使用
- 关于热修复框架nuwa的使用
- Android热更新框架Nuwa的使用
- 关于热修复框架nuwa的使用
- 热修复框架nuwa的使用
- 网站统计中的数据收集原理及实现(有说前端如何埋点)
- JAVA动态代理模拟
- 队列和栈
- Python模块结构与布局操作实例
- 原型继承、构造函数继承
- nuwa总结
- 数字图像处理-频率域滤波原理
- 非递归式(zkw)线段树详解(一)
- thinkphp5常用的使用方式
- 第三次HTML作业
- eclipse配置jdk
- 消息队列设计精要
- WebService
- HUE安装问题