本篇文章会与大家一起学习使用阿里的AndFix热修复框架,可以说AndFix是国内热修复技术的开山始祖,尽管现在阿里已经放弃了对这个项目的维护,但是后来很多的热修复技术都借鉴了这一框架的实现思路。

1.什么是AndFix?

AndFix是阿里巴巴出的一个专门针对Android的热修复框架

,那什么是热修复呢?就是不需要重新安装APK而达到修复bugs的目的。

看看阿里巴巴官方对AndFix的描述:

英文好的可以看官网说明文档(有翻译不妥欢迎指出)

1.AndFix是一个Android库,它是在线解决bugs,而不是重新安装app的一种解决方案。

2.AndFix是Android hot-fix

的缩写

3.AndFix 支持Android的2.3-7.0的版本,支持ARM和X86的处理器,支持Dalvik与ART的运行时,支持32位和64位。

4.AndFix的补丁文件的格式是.apatch

,它是由您自己的服务器分发到客户端解决您的应用程序的错误。

2.AndFix的原理

AndFix的实现原理是方法体的替换

 

3.修复过程

 

4.获取AndFix库

直接将AndFix AAR添加到您的项目作为编译库。

对于Maven的依赖:

<dependency>

<groupId>com.alipay.euler</groupId>

<artifactId>andfix</artifactId>

<version>0.5.0</version>

<type>aar</type>

</dependency>

对gradle的依赖:

dependencies {

compile 'com.alipay.euler:andfix:0.3.1@aar'

}

5.如何使用AndFix

1.初始化PatchManager

patchManager = new PatchManager(context);

patchManager.init(appversion);//current version

2.加载补丁

patchManager.loadPatch();

你应该尽可能早地加载补丁,通常在你的应用程序初始化阶段加载补丁,例如:在Application.onCreate()

中加载补丁

3.添加补丁

patchManager.addPatch(path);//path of the patch file that was downloaded

当一个新的补丁文件已经下载,,通过调用了addPatch()方法就会立即生效。

6.补丁制作工具

1.下载补丁制作工具

AndFix 给我们提供了一个制作补丁的工具apkpatch

2.使用补丁工具

1.准备两个android apk文件 , 一个是在线的apk文件,另一个是修复bug后的apk文件(两个apk的版本号一样)

2.通过这两个apk文件生成一个补丁文件.apatch

//在补丁的工具文件夹中,打开控制台,并在控制台输入:

apkpatch -f <new> -t <old> -o <output> -k <keystore> -p <> -a <alias> -e <>

//参数说明:

-a,--alias <alias> keystore entry alias.

-e,--epassword <***> keystore entry password.

-f,--from <loc> new Apk file path.

-k,--keystore <loc> keystore path.

-n,--name <name> patch name.

-o,--out <dir> output dir.

-p,--kpassword <***> keystore password.

-t,--to <loc> old Apk file path.

3.在控制台中执行上面命令后,在指定的<output>文件夹中后会生成,如下文件:

smali

app-release1-44c095be1acbdd01beed3afd478182f0.apatch

diff.dex

其中app-release1-44c095be1acbdd01beed3afd478182f0.apatch

就是补丁文件。

本篇和大家一起学习了什么是AndFix,以及在发现Bug后使用AndFix生成一个补丁包并进行热更新修复,也大概讲了一下在实际生产环境中实现热更新修复功能的流程,并简单地封装了在网络环境中实现热更新修复的功能。

热修复干货| AndFix热补丁动态修复框架使用教程的更多相关文章

  1. Android 热补丁动态修复框架小结

    一.概述 最新github上开源了很多热补丁动态修复框架,大致有: https://github.com/dodola/HotFix https://github.com/jasonross/Nuwa ...

  2. 安卓App热补丁动态修复技术介绍

    版权声明:本文由johncz原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/169 来源:腾云阁 https://www.q ...

  3. App热补丁动态修复技术介绍

    安卓App热补丁动态修复技术介绍 来自qq空间团队:微信号qzonemobiledev QQ空间终端开发团队 1.背景 当一个App发布之后,突然发现了一个严重bug需要进行紧急修复,这时候公司各方就 ...

  4. Android热补丁动态修复

    1.前言 由于公司项目中使用到热修复技术,之前对这块技术知之甚少,所以有时间去学习了解了一下. 2.学习资源 2.1 热修复介绍 还是鸿洋老师的精彩讲解,中间引用了Andorid dex分包方案和QQ ...

  5. 安卓热修复之AndFIX

    我致力于最新的前沿安卓技术分析和使用教学,不打算将很多很深的东西,因为有多少人愿意沉下你的心境去学习难点?我一般只会简单提及.文字错漏在所难免还希望同学们喜欢 热修复介绍 热修复是什么? 如果你一个项 ...

  6. Andfix热修复原理

    一.前言 最近腾讯弄出一个Tinker热修复框架,那么本文先不介绍这个框架,先来介绍一下阿里的一个热修复框架AndFix,这个框架出来已经很长时间了,但是看网上没有太多非常详细的讲解,这里就来做一次分 ...

  7. Andfix热修复框架原理及源代码解析-上篇

    热补丁介绍及Andfix的使用 Andfix热修复框架原理及源代码解析-上篇 Andfix热修复框架原理及源代码解析-下篇 1.不知道怎样使用的同学,建议看看我上一篇写的介绍热补丁和Andfix的使用 ...

  8. 阿里 AndFix 热修复框架简介

    阿里AndFix热修复框架简介 热修复原理: Android的类加载机制 Android的类加载器分为两种,PathClassLoader和DexClassLoader,两者都继承自BaseDexCl ...

  9. ios开发不能不知的动态修复bug补丁第三方库JSPatch 使用学习:JSPatch导入、和使用、.js文件传输加解密

    JSPatch ios开发不能不知的动态修复bug补丁第三方库JSPatch 使用学习:JSPatch导入.和使用..js文件传输加解密 ios开发面临审核周期长,修复bug延迟等让人无奈的问题,所以 ...

随机推荐

  1. 浅析TCP三次握手及四次挥手

    1. 三次握手 1. TCP为什么相较于UDP是可靠连接? 可靠连接是指,待通信的两个实体,能够满足通信数据包的有序性.完整性以及可靠性.对于UDP来说, 它的连接过程不需要握手,忽略丢失的数据包,并 ...

  2. tecplot-计算合速度的一种方法

    原视频下载地址: http://yunpan.cn/cudFwWr8tFsxV  访问密码 75a8

  3. 已知 sqrt (2)约等于 1.414,要求不用数学库,求 sqrt (2)精确到小数点后 10 位

    问题:已知 sqrt (2)约等于 1.414,要求不用数学库,求 sqrt (2)精确到小数点后 10 位. 出题人:阿里巴巴出题专家:文景/阿里云 CDN 资深技术专家. 考察点:基础算法的灵活应 ...

  4. Ubuntu --- 安装deb包

    在Ubuntu下安装deb包需要使用dpkg命令.Dpkg 的普通用法: 1.sudo dpkg -i <package.deb> 安装一个 Debian 软件包,如你手动下载的文件. 2 ...

  5. Python: 在CSV文件中写入中文字符

    0.2 2016.09.26 11:28* 字数 216 阅读 8053评论 2喜欢 5 最近一段时间的学习中发现,Python基本和中文字符杠上了.如果能把各种编码问题解决了,基本上也算对Pytho ...

  6. Linux下用jar命令替换war包中的文件【转】

    问题背景:在Linux环境上的weblogic发布war包,有时候只是修改了几个文件,也要上传整个war包,这样很费时间,因此整理了一下Linux环境,更新单个文件的方法. 1.如果要替换的文件直接在 ...

  7. https://suchprogramming.com/epoll-in-3-easy-steps/

    https://suchprogramming.com/epoll-in-3-easy-steps/ https://www.quora.com/What-are-the-key-difference ...

  8. 000 装docker

    直接参考别人的文章,经过验证,没有问题,需要网络. URL: https://www.cnblogs.com/qgc1995/archive/2018/08/29/9553572.html 我是虚拟机 ...

  9. 011 client系列案例

    一:Client系列 1.说明 clientWidth:不包括边框的可视区的宽 clientHeight:可视区的高,不包括边框 clientLeft:左边框的宽度 clientTop:上面框的宽度 ...

  10. naxsi-waf-with-ui :dockerfile

    scollazo/naxsi-waf-with-ui Dockerfile - Docker Hubhttps://hub.docker.com/r/scollazo/naxsi-waf-with-u ...