热修复之一

什么是热修复?

定义:在我们应用上线后出现BUG需要及时修复时,不用再发新的安装包,只需要发布补丁包,客户无感知下修复掉BUG。

怎么进行热修复?
  • 服务端:补丁包管理
  • 用户端:执行热修复
  • 开发端:生成补丁包

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e9qAgheY-1649855441585)(C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20220412220034817.png)]

热修复解决方案

热补丁方案有很多,其中比较出名的有腾讯Tinker、阿里的AndFix、 美团的Robust以及QZone的超级补丁方案

在这里插入图片描述

AndFix

在native动态替换java层的方法,通过native层hook java层的代码。

在这里插入图片描述

通过注解来定位方法

public class Test{
  @MethodReplace(class="com.enjoy.Test",method="test")
  public void test(){}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EgRM1nuo-1649855441590)(C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20220412222303588.png)]

达到即时生效的目的

Robust

Robust插件对每个产品代码的每个函数都在编译打包阶段自动的插入了一段代码----字节码插桩

美团官网说明:https://tech.meituan.com/2016/09/14/android-robust.html

对每个函数都在编译打包阶段自动的插入了一段代码。类似于代理,将方法执行的代码重定向到其他方法中

//编写的代码
  @Modify //改动代码后手动添加注释用于补丁包生成
  public long getIndex(){
     return 100;
  }
  
  //经过插桩后实际执行的代码
  public long getIndex(){
  if(changeQuiRedirect!=null){//如果执行热修复就进入判断
         //....
         return 160;//修复的实现
         }
          return 100L;
  }

实际也是使用反射,类加载实现的即时生效。

Tinker

Tinker通过计算对比指定的Base Apk中的dex与修改后的Apk中的dex的区别(差分包),补丁包中的内容即为两者差分的描述。运行时将Base Apk中的dex与补丁包进行合成,重启后加载全新的合成后的dex文件。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-glL4AkN4-1649855441591)(C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20220413210723954.png)]

如何使用这个dex文件?

答:ClassLoader

Android类加载机制源码解析

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图像扩散是一种修复图像的方法,它可以通过应用不同的扩散过程来减少图像中的噪声和损坏。根据引用,我们可以使用局部自适应滤波器和各向异性扩散来在接近图像边缘的地方进行平滑。各向异性扩散是指在特定方向上进行平滑,其中不同的方向具有不同的权重。 引用中提到,如果使用单位矩阵作为扩散张量,则会得到各向同性扩散,这类似于应用方程进行图像平滑。然而,也可以使用高斯核对扩散张量进行正则化,这将导致在边缘附近有细长核,并在均匀区域中有类高斯核的图像平滑。 此外,还有一些其他的扩散方法被提出,例如边缘增强扩散(EED)和相干增强扩散(CED)。EED方法通过在垂直于边缘的方向上减小扩散系数来增强边缘。CED方法通过增加沿着相干方向给出的扩散系数来增强相干。 总结来说,diffusion图像修复是通过应用不同的扩散过程来减少噪声和损坏,其中各向异性扩散可以在接近图像边缘的地方进行真正的平滑,而各向同性扩散和其他改进的扩散方法可以在不同方向上调整平滑过程,以改善图像质量和保护边缘。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [图像修复之基于PDE的正则化或扩散基础](https://blog.csdn.net/weixin_44881806/article/details/120883315)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值