代码编织梦想





一、Android 热修复系统组成



Android 热修复系统组成 :

  • 手机端 SDK : 在手机中集成一个 SDK , 是 Android 手机端 的热修复支持组件 , 借助该组件实现动态加载外部修复包 ( 字节码文件 ) ;
  • 后端服务器 : 在服务器中 处理 手机端 SDK 的请求数据 , 以及 为管理操作界面进行后端支持 ;
  • 管理操作界面 : Android 开发者通过该界面 , 构建 | 发布 | 管理 | 监控 修复包文件 ;

一般情况下 管理操作界面 和 后端服务器 是一个 Java / .NET / PHP 开发的 Web 应用 ;





二、热修复工作流程



热修复工作流程 :

首先 , 开发者发现 BUG , 使用 Gradle 插件生成 修复包 ;

然后 , 开发者 将修复包上传到 服务器端 , 由服务器对热修复的修复包进行统一的管理 ;

最后 , 手机端的 SDK 每次启动都会到 服务器端 检查是否有最新的修复包 , 如果有则下载最新的修复包 , 并在本地配置该修复包 , 每次启动都加载并执行该修复包数据 ;





三、热修复使用到的技术



热修复使用到的技术 :

  • DexClassLoader 动态加载技术 : 主要是使用 自定义 DexClassLoader 类加载器 通过各种 代理 | 反射 | HOOK 等操作 加载外部的字节码数据 ; 热修复 , 插件化 , 换肤框架 都用到该技术 ;
  • 差分打包技术 : 使用 bsdiff.so 动态库 , 对比代码差异 , 进行差分打包 ;
  • 字节码插桩技术 : 使用 ASM , Javassit 技术 , 编译时替换相关类 ;
  • Android Gradle 插件相关技术 : 开发 自定义 Android Gradle 插件 , 整个热修复相关技术 ;
  • NDK 相关技术 : 需要 编译生成 so 动态库 ;




四、热修复框架选择注意事项



挑选热修复框架时 , 一定要要选择一直保持更新的框架 ;

凡是使用到 插件化 , 热修复 , 加固 等需要 HOOK 操作的框架时 , 必须注意 , HOOK 框架必须适配所有的 Android 版本, Android 源代码每个版本都不一样 , 选择的 HOOK 点也不一样 ;

如果选择 AndFix 热修复框架 , 该框架已经好几年没有更新 , 无法在新版本的手机操作系统中运行 , 一旦运行肯定崩溃 ;

哪怕是去年停止更新 , 支持到了 Android 12 , 今年新出了 Android 13 , 如果使用了该框架 , 则 应用无法在 Android 13 中正常运行;

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/shulianghan/article/details/127991205

android 热修复与插件化 二_tenderness4的博客-爱代码爱编程_android checkerplugimpl

一、什么是热修复 顾名思义,动态的修复或者更新我们的APP的行为,有时候会被称为动态更新 二、热修复的好处 以前APP修复BUG,或者新添一些小功能,只能通过发布一个版本,覆盖安装才能解决问题,过程成本非常高,严重的话可能导致用户流失 现在通过热修复,就能无感修复一些BUG或者添加一些小功能 热修复其实是一种亡羊补牢的手段,热修复和发布的正式

android 腾讯 bugly 热修复-爱代码爱编程

依赖配置流程 Bugly 文档中心 引入依赖 在项目的 build.gradle 中加入依赖 buildscript { repositories { jcenter() go

Android 浅谈模块化、组件化、插件化、热修复的简单理解-爱代码爱编程

目录 前言  一、模块化 二、组件化 1、概念 2、使用 3、版本管理 4、模块间跳转 5、资源命名问题 三、插件化 四、热修复 1、概述 2、流派 3、原理 五、总结 前言  谈到热修复相信大家应该比较熟悉,因为它是目前比较重要的技术,平常面试中也是被问的比较多。插件化和热修复同出一门,俩者都属于动态更新,而模块化和

Android热修复技术简介-爱代码爱编程

目录 写在前面 一、热修复简介 1.1、什么是热修复 1.2、热修复有哪些好处 1.3、热修复===万事大吉? 二、热修复常见技术方案对比 2.1、方案介绍 2.2、实现套路 2.3、技术对比 2.4、技术选型 2.5、关于自建热修复 写在前面 今天是千年难得一遇的2020520(怎么样这个颜色喜欢吗? ),这么好的日子你表白了吗

深入解析:Android热修复技术选择和原理-爱代码爱编程

背景 想要成为一名优秀的Android开发,你需要一份完备的 知识体系,在这里,让我们一起成长为自己所想的那样~。 热修复就是通过下发补丁包,让已安装的客户端动态更新,用户不用重新安装APP,就能够修复软件缺陷。 热修复技术对比 1.公司角度 大致可以分为阿里系和腾讯系和其他,如下: 阿里系 Dexposed 开源,实时修复 AndFix 开源

android热修复插件化,Android热修复与插件化实践之路-爱代码爱编程

第1章 class文件与dex文件解析 本章通过从java最基本的class文件与android最基本的dex文件进行对比,并不借助IDE去生成及执行class与dex文件,通过讲解class与dex的手动生成,执行, 格式对比,让学生明白二者的相同与不同。 1-1 课前必读(不看会错过一个亿) 1-2 课程项目整体介绍 1-3 本章概述 1

android热修复 游戏渠道,(续)Android热更新:Tinker热修复与Walle多渠道打包-爱代码爱编程

这一篇主要是带给大家,在使用Tinker热修复的时候,进行多渠道打包的一种解决方案。 相信大家看到标题就知道,这里要讲的就是美团带来的 新一代开源Android渠道包生成工具Walle 至于为什么选择Walle,我给大家看一张截图,如下: Walle的选择 下面进入正题,以下截图和代码是基于上一篇文章的demo,看这里 一、接入Walle

android加固热修复,Android - 热修复tinker配置-爱代码爱编程

老婆保佑,代码无BUG 前言 这里不扯其他的,也算是给入坑的小伙伴,踩踩坑。坑是真多 一:SDK 接入 第一步 添加 gradle 插件依赖 buildscript { repositories { jcenter() } dependencies { // TinkerPatch 插件 classpath "com.tink

android 强制更新和热修复,Android Tinker 简单好用的热修复 热更新-爱代码爱编程

如果发布到市场的应用突然发现了一个已修复的小bug,如果为了修复它,传统的方法是要发布一个新版本,不过有了tinker后可以用热更新修复,用户体验更好. 一.Tinker 的简单上手 以下是腾讯gihub官方地址 Tinker 接入指南 以下几篇写的非常好的blog Tinker 热修复框架 简单上手教程 微信tinker快速集成 一定要

android热修复技术tinker,Android热修复方案第一弹——Tinker篇-爱代码爱编程

背景 一款App的正常开发流程应该是这样的:新版本上线-->用户安装-->发现Bug-->紧急修复-->重新发布新版本-->提示用户安装更新,从表面上看这样的开发流程顺理成章,但存在 很多弊端: 1.耗时,代价大,有时候可能是一个很小很细微的一个问题,但你还必须下架并 更新应用版本。 2.用户体验差,安装成本高,一个

美团热修复 Android适配,美团热修复Robust用法和实践-爱代码爱编程

今天说一下Android热修复的问题。 在之前的项目中一直都是使用 andFix做热修复,而且一直用的比较稳定。突然某天在新的项目上使用的时候发现7.0以上的手机一直没能成功,最后发现是兼容性的问题。目前andFix支持到7.0(不知道后面有么有做兼容) 其实sophix 还是很不错的一个修复策略 而且阿里的sophix支持后台维护 修复文件

Android热修复技术 --- 类加载机制-爱代码爱编程

Android热修复,在最近几年里已经不是什么新颖的技术了,很多公司都开始搞起了自己的热修复框架,最开始的像腾讯的Tinker,阿里的AndFix、Sophix,美团的Robust,想要自己实现一套热修复的框架,就需要了解其中的原理 类加载机制 1 热修复概念2 热修复使用到的技术3 几种常见的热修复框架对比3.1 AndFix3.2 Robust3

Android热修复技术 --- Gradle插件实现差分打包 + 手写热修复框架-爱代码爱编程

在之前介绍的3种主流框架中,Tinker是采用动态加载dex文件,依赖类加载机制实现重启生效的热修复技术,通过差分打包的方式,将补丁包放入dexElement数组中,这种技术也是最常用的一种方式,那么首先了解一下Tinker的差分打包 Tinker差分打包 1 Tinker bisdiff1.1 使用Gradle插件创建差分打包任务1.2 Gradl

android热修复框架设计——gradle自动化多渠道打包_小飞老师的博客-爱代码爱编程

Gradle 是什么 Gradle 是 依赖管理 + 构建工具。它继承了 Ant 的灵活和 Maven 的生命周期管理,它最后被 google 作为了 Android 御用管理工具。它最大的区别是不用 XML 作为配置文件格式,采用了DSL格式,使得脚本更加简洁。 Ant 是最早的构建工具,基于 idea,好象是2000年有的,当时是最流行 ja

通过字节码插桩技术,来了解美团热修复_小米椒……的博客-爱代码爱编程

热修复技术如今已经不是一个新颖的技术,很多公司都在用,而且像阿里、腾讯等互联网巨头都有自己的热修复框架,像阿里的AndFix采用的是hook native底层修改代码指令集的方式;腾讯的Tinker采用类加载的方式修改dex

android进阶宝典 -爱代码爱编程

热修复技术如今已经不是一个新颖的技术,很多公司都在用,而且像阿里、腾讯等互联网巨头都有自己的热修复框架,像阿里的AndFix采用的是hook native底层修改代码指令集的方式;腾讯的Tinker采用类加载的方式修改dex