本篇博客是笔者第一次接触热修复的学习笔记,主要分享内容:1. 什么是android的热修复?2. 如何实现热修复?目前有什么方案?3. 热修复背后的原理?Android热修复是啥?常见的使用场景刚发布的应用出现闪退、ANR等bug,及时修复 。及时推送一些小的功能给用户使用。优势所在无需重新发布,实时高效修复bug用户无需操作,无需下载新的应用修复成功率高,降低损失热修复方案和背后的原理热修复主要
转载
2023-07-11 18:48:30
111阅读
目录前言一、配置1.添加插件依赖2.集成SDK3.初始化SDK4.AndroidManifest.xml配置5.混淆配置二.使用1.编译基准包2.根据基准包生成补丁包3.上传补丁包四.多渠道打包五.一点注意前言记录一下Bugly 热修复集成步骤,以及使用注意事项。Bugly目前采用微信Tinker方案。一、配置1.添加插件依赖工程目录下 build.gradlebuildscript {
转载
2023-08-11 16:32:21
174阅读
一、前言 任何程序都无法保证上线后不会出现紧急bug,选择的修复方式不同,其代价也大不相同。所谓热修复,是相对于正常的版本迭代修复而言的,它可以及时在应用内下载补丁更新程序逻辑,修复bug;而不需要等到下一个版本发布。举个简单的例子,假如有一行代码的逻辑写错了,并且已经编译出APK,安装到了用户的手机上,此时有两种处理方式:等待下一个版本发布,其中修复了错误代码,即迭代修复给用户推送补丁,及时修
转载
2023-12-11 23:46:42
335阅读
注明:本文章是对阿里开放出的《深入探索Android热修复技术原理7.3Q.pdf》进行阅读后的总结性文章,只包含个人认为有用的内容,目的是方便以后回忆或者分析问题,想深入学习可自行研究。附上原书http://pan.baidu.com/s/1dE7i8NJ三大修复原理简要1.代码修复1.1 即时生效:底层替代类中的老代码,并且无视底层的具体结构。 1.2 重启生效:基于类加载机制,重新编排了包
转载
2023-08-07 07:29:14
147阅读
Arthas(阿尔萨斯)是 Alibaba 开源的一款 Java 诊断工具,使用它我们可以监控和排查 Java 程序,然而它还提供了非常实用的 Java 热更新功能。所谓的 Java 热更新是指在不重启项目的情况下实现代码的更新与替换。使用它可以实现不停机更新 Java 程序,尤其是对那些启动非常耗时的 Java 项目来说,更是效果显著。Arthas 的使用其实非常简单,它为我们提供了一个 Jar
转载
2024-03-12 17:09:07
85阅读
Android优化之热修复 1、什么是热修复呢?
热修复是针对修复app中的bug的场景来定义的。
假设,现在用户使用的app有个方法报错了,那么解决这个问题,目前有
2
种方式:
(1):直接下载整个最新app重新安装;
(2):使用增量更新的方式下载patch包合成新apk,重新安装;
转载
2023-10-30 15:43:39
95阅读
刚听朋友说bugly出热修复了,抱着好奇的心发现居然已经那么久的事,居然不知道,结果打开文档的时候Tinker进入视野,当时就懵逼了,这不是微信的玩意嘛,看了下好像介入是比较简单点了。但是还是搞了好久,入坑了。。bugly热修复文档进入http://bugly.qq.com/docs/user-guide/instruction-manual-android-hotfix/?v=201702130
转载
2023-09-21 21:12:53
192阅读
Bugly热更新是腾讯推出的热更新框架,热更新是指无需到应用市场重新下载安装app,只需要在app内下载补丁包即可实现app的更新,主要用于app的bug修复或者少量改动。 大家在使用app(特别是游戏app比较常见)的时候应该都有过类似经历:打开app
转载
2024-01-25 10:34:31
122阅读
文章目录1 热修复技术出现的背景2 热修复技术简介3 插件化3.1 什么是插件化3.2 插件化例子3.3 新增界面、资源的插件4 热修复技术4.1 类加载机制4.2 PathClassLoader和DexClassLoader4.3 热修复技术的原理4.3.1 findClass()4.3.2 DexPathList、dexElement、dexFile4.4 分析干预类加载4.4.1 全量替换
转载
2023-08-08 19:43:13
380阅读
上篇介绍了bugly热修复的接入,接下来我们来说下如何使用的,接入不难,但是使用你觉得会懵逼,反正我开始的时候找了老半天没找到所谓的gradle界面。当时是百脸懵逼啊。既然是修复,那么咱们就先搞一个错误出来,最伟大的错误空指针最好了。1、创建一个类。内容如下:public class BugClass{
public String bug(){
String str =
转载
2023-10-30 15:46:05
101阅读
热修复是在应用的App包发布到市场之后,出现了Bug,无需替换包来进行在线更新的一种技术,对用户是无感知的。目前广义上有两种方案可以实现代码的替换,一种是类的替换,基于Classloader;另一种是方法的替换,而这两种方式各有优缺点。方法的替换:只能替换方法的内容,所以不能够对要patch的类进行方法的新增和删除;但同时,方法的替换可以在应用不重启的情况下实现。它包小、快速、功能单一、比较轻
转载
2023-08-25 13:17:34
189阅读
什么是热修复热修复就是一家发布的app存在bug需要修复,但是不想重新发布安装包,通过让用户下载补丁文件的方式解决。市面上常见的热修复 热修复主要两种思路像AndFix这种热修复一般是 native 动态替换java层代码,就是将句柄 指向了新的修复好的方法 特点 即时生效、注解、NDK Robust 对每个函数都在编译打包阶段自动的插入了一段代码。类似于代理,将方法执行的代码重定向到其他方法中
转载
2023-11-25 12:57:41
180阅读
AndFix,全称是Android hot-fix。是阿里开源的一个热补丁框架,允许APP在不重新发布版本的情况下修复线上的bug。支持Android 2.3 到 6.0,并且支持arm 与 X86系统架构的设备。完美支持Dalvik与ART的Runtime,补丁文件是以 .apatch 结尾的文件。原理AndFix的原理就是方法的替换,把有bug的方法替换成补丁文件中的方法;直接在native层
转载
2023-07-28 19:44:39
125阅读
一、打基线包1、打开thinker-support.gradle文件,指定基线包的thinkerId、注释多渠道补丁: 2、打基线包: 完成后,在app的build的bakApk目录下会生成app-0411-11-00-41目录,里面的app-release.apk就是我们要的基线包 双击app-release.apk,可以看到此包的一些信息:二、修复基线包的测试bug三、打补丁包1、打开thin
转载
2023-10-05 14:41:00
163阅读
什么是热修复?热修复提出于2014年,兴起于2016年,尤其是在Instant run 问世以后,各种热修复技术相继涌出。是一种摆脱传统发版方案直接使用补丁来更新app内容,不需要重新下载安装apk等略过一系列繁琐过程的新兴技术,目前国内部分成熟App都拥有自己的热修复技术,如:手淘、QQ、微信、美团、饿了么等。热修复有什么优势&为什么要使用热修复?来看一个场景:公司一个项目A在上线后发现
上篇讲到代码修复技术分为两类:底层替换热修复和类加载热修复。这篇主要是对这两者底层原理的学习。一、底层替换热修复原理1. 即时生效的Andfix简单概括下Andfix:众多热修复技术中,Andfix做到了非常炫酷的即时生效功能,无需重启应用就可以修复类中的方法,同时他也存在无法适配某些机型的缺点。他的核心方法在于replaceMethod函数中:我们来看一下Andfix热修复的大概流程:上面能看到
转载
2023-07-30 23:24:19
170阅读
Tinker 腾讯开源热修复框架,https://github.com/Tencent/tinker 已知的的问题 Tinker不支持修改AndroidManifest.xml,Tinker不支持新增四大组件(1.9.0支持新增非export的Activity); 由于Google Play的开发者条款限制,不建议在GP渠道动态更新代码; 在Android
转载
2023-11-17 15:37:37
99阅读
很早之前就想深入的研究和学习一下热修复,由于时间的原因一直拖着,现在才执笔弄起来。一. 实现套路总所周知,目前热修复的实现套路基本上离不开以下两种:实现套路描述代表底层替换方案底层替换方案限制颇多,但时效性最好,加载轻快,立即见效阿里系的AndFix、Sophix类加载方案类加载方案时效性差,需要重新冷启动才能见效,但修复范围广,限制少QZone超级补丁、微信Tinker二. 方案对比分析虽然热修
转载
2023-09-13 22:44:51
74阅读
什么是热修复呢?热修复是针对修复app中的bug的场景来定义的。
假设,现在用户使用的app有个方法报错了,那么解决这个问题,目前有2种方式:
一:直接下载整个最新app重新安装;二:使用增量更新的方式下载patch包合成新apk,重新安装;
虽然增量更新的体验更好,但是这2种方式的共同问题是都需要重新安装。那么,有没有一种方式不用重新安装app,在用户不知不觉中就修复了bug呢?
热修复技
转载
2023-08-16 15:50:38
231阅读
前言
说起热修复,已经是目前Android开发必备技能。我所了解的一种实现方式就是类加载方案,即 dex 插桩,这种思路在插件化中也会用到。除此之外,还有底层替换方案,即修改替换 ArtMethod。采用类加载方案的主要是以腾讯系为主,包括微信的 Tinker、饿了么的 Amigo;采用底层替换方案主要是阿里系的 AndFix 等。今天我将围绕热修复实现原理以及常见的热修复方式来讲解热修复。目录
转载
2023-05-26 15:51:41
1587阅读