Android HotFix Solutions
Omni-Space
专注Android, Mobile Security and AI
展开
-
Android-FixBug热修复框架的使用及源码分析(不发版修复bug)
前面几篇博文已经介绍了2种热修复框架的使用及源码分析,AndFix兼容性比较好,而Dexposed Art处于Beta版。AndFix和Dexposed都是阿里的开源项目。 Alibaba-AndFix Bug热修复框架的使用 Alibaba-AndFix Bug热修复框架原理及源码解析 Alibaba-Dexposed框架在线热补丁修复的使用 Alibaba-Dexposed转载 2016-03-09 06:38:03 · 583 阅读 · 0 评论 -
[读书笔记] 深入探索Android热修复技术原理 (手淘技术团队)
热修复技术介绍探索之路最开始,手淘是基于Xposed进行了改进,产生了针对Android Dalvik虚拟机运行时的Java Method Hook技术——Dexposed。但该方案对于底层Dalvik结构过于依赖,最终无法兼容Android 5.0 以后的ART虚拟机,因此作罢。后来支付宝提出了新的热修复方案AndFix。AndFix同样是一种底层替换的方案,也达到了运行时生效即时修复转载 2018-01-15 15:37:11 · 1370 阅读 · 0 评论 -
由Sophix引发的Android热更新底层原理探索
移动互联网市场日趋成熟,移动产品研发进入平稳发展阶段,这意味着开发者的思维和研发模式也应转入下半程。安全领域技术在开发中的应用一直是操作系统平台发展周期中的重要一环。热修复,作为安全领域技术的衍生品,自2016年开始,持续受到关注,并不断演进。 2016年上半年,为了提升产品在敏捷开发下的最佳发布体验,分别尝试了备受关注的阿里和微信两大派系的热更新方案(支付宝的Andfix和微信的T...转载 2018-04-09 12:43:42 · 1368 阅读 · 0 评论 -
Android热修复升级探索——SO库修复方案
一、前言通常情况下,大多数人希望android下热补丁方案能够做到补丁的全方位修复,包括类修复/资源修复/so库的修复。 这里主要介绍热补丁之so库修复思路。二、so库加载原理Java Api提供以下两个接口加载一个so库System.loadLibrary(String libName):传进去的参数:so库名称, 表示的so库文件,位于apk压缩文件中的libs目录,最后复制到apk安装目录下...转载 2018-04-09 12:48:58 · 1837 阅读 · 0 评论 -
Android热更新方案Robust
美团•大众点评是中国最大的O2O交易平台,目前已拥有近6亿用户,合作各类商户达432万,订单峰值突破1150万单。美团App是平台主要的入口之一,O2O交易场景的复杂性决定了App稳定性要达到近乎苛刻的要求。用户到店消费买优惠券时死活下不了单,定外卖一个明显可用的红包怎么点也选不中,上了一个新活动用户一点就Crash……过去发生过的这些画面太美不敢想象。客户端相对Web版最大的短板就是有发版的概念...转载 2018-04-09 12:53:46 · 2485 阅读 · 0 评论 -
aapt2 适配之资源 id 固定
前言资源id的固定在热修复和插件化中极其重要。在热修复中,构建patch时,需要保持patch包的资源id和基线包的资源id一致;在插件化中,如果插件需要引用宿主的资源,则需要将宿主的资源id进行固定,因此,资源id的固定在这两种场景下是尤为重要的。而在Android Gradle Plugin 3.0.0中,默认开启了aapt2,原先aapt的资源固定方式public.xml也将失效,必须寻找一...转载 2018-04-02 14:16:06 · 3053 阅读 · 0 评论 -
Android热修复技术原理详解(最新最全版本)
本文框架什么是热修复?热修复框架分类技术原理及特点Tinker框架解析各框架对比图总结 通过阅读本文,你会对热修复技术有更深的认知,本文会列出各类框架的优缺点以及技术原理,文章末尾简单描述一下Tinker的框架结构。一、什么是热修复?正常开发流程热修复开发流程热修复优势修复什么?二、热修复框架分类现状:百花齐放百家争鸣简单分类更合理的分类三、技术原理及特点3.1 阿里Dexposed -- na...转载 2018-04-06 12:28:34 · 803 阅读 · 0 评论 -
Android友盟增量更新
1.增量升级的原理 增量更新的原理就是将本地apk与服务器端最新版本比对,并得到差异包。比如现在的版本是1.1.4,大小是7.2M,新版本是1.1.5.大小是7.3M。我们发现两个版本只有0.1M的差异,这样我们如果采用增量升级生成0.1M左右的差异包,这样用户只需要下载0.1M的差异包进行升级而不需要重新下载7.3M的新版本了。2.以往增量升级的实现 首先要有服务端来生成差异包,这一步使用bsd...转载 2018-04-07 11:30:54 · 431 阅读 · 0 评论 -
Android热修复之 - 阿里开源的热补丁
1.1 基本介绍 我们先去github上面了解它https://github.com/alibaba/AndFix这里就有一个概念那就AndFix.apatch补丁用来修复方法,接下来我们看看到底是怎么实现的。 1.2 生成apatch包 假如我们收到了用户上传的崩溃信息,我们改完需要修复的Bug,这个时候就会有一个新的的apk我们就叫它为new.apk,原来的那个有Bug的apk你也...转载 2018-04-07 11:30:58 · 366 阅读 · 0 评论 -
Android热修复之 - 收集崩溃信息上传服务器
1.概述 大致的流程就是在用户崩溃的时候,我们获取崩溃信息、应用当前的信息和手机信息,然后把它保存到手机内存卡,再找我就直接找出来看看。后来衍生到上线后某些奇葩机型会有部分问题,所以不得不上传到服务器,后来发现居然可以配合热修复一步一步如此神奇,接下来我们来玩一玩,如何才能把用户的崩溃信息上传到服务器。大家也可以去找腾讯他有现成的:https://bugly.qq.com/v2/index 友盟...转载 2018-04-07 11:31:01 · 537 阅读 · 0 评论 -
ART深度探索开篇:从Method Hook谈起
Android上的热修复框架 AndFix 想必已经是耳熟能详,它的原理实际上很简单:方法替换——Java层的每一个方法在虚拟机实现里面都对应着一个ArtMethod的结构体,只要把原方法的结构体内容替换成新的结构体的内容,在调用原方法的时候,真正执行的指令会是新方法的指令;这样就能实现热修复,详细代码见 AndFix。为什么可以这么做呢?那得从 Android 虚拟机的方法调用过程说起。作为转载 2017-08-27 15:33:19 · 567 阅读 · 0 评论 -
JAndFix: 基于Java实现的Android实时热修复方案
简述JAndFix是一种基于Java实现的Android实时热修复方案,它并不需要重新启动就能生效。JAndFix是在AndFix的基础上改进实现,AndFix主要是通过jni实现对method(ArtMethod)结构题内容的替换。JAndFix是通过Unsafe对象直接操作Java虚拟机内存来实现替换。原理为何JAndfix能够做到即时生效呢? 原因是这样的,在app运转载 2017-06-10 17:13:50 · 1190 阅读 · 0 评论 -
全能HOOK框架 JNI NATIVE JAVA ART DALVIK
OneHook目前比较流行的几个安卓HOOK方案,都有功能上的欠缺,有的不支持art模式,有的不支持jni层,有的不支持侵入HOOK。所以OneHook诞生了!这是一个同时支持ART和Dalvik两种模式,理论上支持安卓4.0.3以上所有版本,同时支持JAVA和NATIVE层,使用全局注入技术的侵入式HOOK框架。本框架不需要额外的安装,可以静态编译到自己的APP中转载 2017-06-29 14:46:29 · 3136 阅读 · 0 评论 -
Alibaba-AndFix Bug热修复框架的使用
目录(?)[+]AndFix这篇主要介绍alibaba的AndFix项目的使用,下一篇介绍 AndFix原理及源码解析。Github:https://github.com/alibaba/AndFixAndFix介绍AndFix是一个Android App的在线热补丁框架。使用此框架,我们能够在不重复发版的情况下,在线修改App中的Bug。AndFix就转载 2016-03-09 06:33:44 · 599 阅读 · 0 评论 -
Alibaba-AndFix Bug热修复框架原理及源码解析
小憩之后,继续为你解读AndFix热修复框架,呵呵。上一篇Alibaba-AndFix Bug热修复框架的使用已经介绍了AndFix的使用,这篇主要介绍AndFix原理以及源码解析。AndFix原理源码解析在自定义Application中初始化PatchMangerinit方法源码Patch文件的加载loadPatch方法源码fix bugDal转载 2016-03-09 06:31:34 · 608 阅读 · 0 评论 -
Alibaba-Dexposed框架在线热补丁修复的使用
目录(?)[+]前两篇已经介绍了alibaba的AndFix热修复: Alibaba-AndFix Bug热修复框架的使用 Alibaba-AndFix Bug热修复框架原理及源码解析DexPosed是Alibaba的另一个框架,都可以在线热修复bug,只不过DexPosed也可以实现其他的功能。DexPosed介绍应用场景在Android上的使转载 2016-03-09 06:29:21 · 584 阅读 · 0 评论 -
AndFix解析——(上)
阿里巴巴前一段时间开源了他们用来解决线上紧急bug的一款Android库——AndFix对Android开发者来说真是一个很好的消息。基于自己的经验,太长的文字很少有人可以一口气看下来的,所以我打算分成多篇来分析 这是这个库解析的第一篇,我们先看一下其中的Demo代码,其中调用加载库的代码如下所示:/** * sample application * * @author转载 2016-03-09 09:26:50 · 825 阅读 · 0 评论 -
AndFix解析——(中)
我们接着分析阿里开源的AndFix库,上次留下了三个坑,一个方法,两个类,不知道你们是否想急切了解呢? loadPatch()方法和AndFixManager和Patch类。分析loadPatch()方法的时候离不开AndFixManager这个类,所以,我会在分析loadPatch()方法的时候分析AndFixManager这个类。 Patch类相当于一个容器,把修复bug所需的信息放在其中转载 2016-03-09 09:28:10 · 1172 阅读 · 0 评论 -
AndFix解析——(下)
我们接着分析阿里开源的AndFix库, 上一篇分析了Patch类,这个类相当于我们提供补丁的容器,容器里有了东西,我们要对容器进行操作了, 于是开始了我们这次的分析。在第二篇里,我们添了Patch类的那个坑,那么这篇文章我们就把最后两个坑填一填,即loadPatch()方法和AndFixManager类。在阿里给的Demo里,我们还有最后的loadPatch()方法没有深入,所以先从loa转载 2016-03-09 09:32:02 · 658 阅读 · 0 评论 -
Android实战】DroidPlugin插件化应用分析
简介DroidPlugin 是360手机助手在Android系统上实现的一种新的插件机制:它可以在无需安装、修改的情况下运行APK文件,此机制对改进大型APP的架构,实现多团队协作开发具有一定的好处 详情请查看DroidPlugin的github地址背景将项目中某个相对独立的功能模块分解出来例如:语音搜索功能模块独立出来,这样减少了项目中依赖包的数量,减少了项目中某转载 2017-03-30 17:34:08 · 752 阅读 · 0 评论 -
热修复框架AndFix【源码阅读】
前言AndFix是阿里巴巴开源的Android热修复框架。其基本原理是利用JNI来实现方法的替换,以实现Android APP的热修复,即无需发版即可临时修复在线BUG。热修复技术有很多种,AndFix采取的native方法替换方案,优点是即时生效,无性能损耗,缺点是只能修改方法,且兼容性可能有问题。虽然其原理比较简单,但要深入理解,还需要对JNI,以及dalvik和Art转载 2017-05-29 15:55:08 · 597 阅读 · 0 评论 -
Android 插件技术实战总结
前言安卓应用开发的大量难题,其实最后都需要插件技术去解决。现今插件技术的使用非常普遍,比如微信、QQ、淘宝、天猫、空间、携程、大众点评、手机管家等等这些大家在熟悉不过的应用都在使用。插件技术可以给项目开发带来巨大的好处,比如:并行高效开发、模块解耦、解除单个dex函数不能超过65535的限制、动态更新升级、按需加载等等。本文的目的是从一个典型的复杂项目中总结出较为全转载 2017-05-19 14:19:13 · 684 阅读 · 0 评论 -
ART深度探索开篇:从Method Hook谈起
Android上的热修复框架 AndFix 想必已经是耳熟能详,它的原理实际上很简单:方法替换——Java层的每一个方法在虚拟机实现里面都对应着一个ArtMethod的结构体,只要把原方法的结构体内容替换成新的结构体的内容,在调用原方法的时候,真正执行的指令会是新方法的指令;这样就能实现热修复,详细代码见 AndFix。为什么可以这么做呢?那得从 Android 虚拟机的方法调用过程说起。转载 2017-06-16 06:59:18 · 3865 阅读 · 0 评论 -
阿里SopHix热修复框架
2015年以来,Android开发领域里对热修复技术的讨论和分享越来越多,同时也出现了一些不同的解决方案,如QQ空间补丁方案、阿里AndFix以及微信Tinker(Bugly sdk也集成Tikner热更新)和阿里最新出品Sophix.它们在原理各有不同,适用场景各异。不过从技术上来说多数热修复框架是基于ClassLoader加载机制。下面是常见热修复框架的比较。 开通热修复服务读者可以打开Sop...转载 2018-04-07 11:31:04 · 1568 阅读 · 0 评论