Android 热修复之AndFix

原创 2016年05月31日 15:31:58

最近看了一下Android在线热修复的相关资料,发现有几个开源的热修复框架都做的不错,分别是Dexposed、AndFix、ClassLoader,经过大神的分析,最终确定了用AndFix来练练手,大神对三个框架的分析:
http://blog.zhaiyifan.cn/2015/11/20/HotPatchCompare/

首先从github上下载了AndFix的代码,
github地址:https://github.com/alibaba/AndFix
由于该项目是用android stdio做的,而本人对android stdio不熟,搞了一天,都还没把项目运行起来,所以就试着换成熟悉的eclipse来搞,经过一番痛苦的调试,最终还是实现了在线更新的功能。

本文不讨论AndFix原理,只是集成的过程说一下,如果有兴趣的同学,可以看一下别的大神对AndFix的分析:
Android热补丁之AndFix原理解析
AndFix使用说明

AndFix集成步骤

步骤1:先把com/alipay/euler/andfix/下的代码打包成jar文件,然后引用,当然不打包成jar直接引入也是可以的

步骤2:把AndFix/libs下的所有文件复制到libs

步骤3:在application类onCreate里面做初始化

String appversion="";
try {
appversion = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;

} catch (NameNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

patchManager = new PatchManager(getApplicationContext());
patchManager.init(appversion);//current version
patchManager.loadPatch();

步骤4:
先打包一个有修复bug前的apk,然后把bug修复,再打包一个修复bug后的apk,这里为了方便显示,修复前的就在textview显示”修复前”,修复后的就显示”修复后”,

private void init() {
        String tag="修复前";
        Log.i(TAG, tag);
        textView1.setText(tag);
    }
private void init() {
        String tag="修复后";
        Log.i(TAG, tag);
        textView1.setText(tag);
    }

步骤5:生成补丁文件

补丁文件需要两个apk来生成,一个是线上有bug的apk,一个是已经修复了bug的apk,通过补丁生成工具apkpatch来生成,进入apkpatch所在目录,执行以下命令,就会生成一个.apatch文件,把这个文件放到手机

./apkpatch.sh -f new.apk -t old.apk -o ./ -k my.keystore -p mykeystore -a mykeystore -e fangchoutest

-a,别名.
-e,keystore别名密码
-f,新apk路径
-k,keystore路径
-n, patch 名字
-o,输出路径
-p,keystore密码
-t,旧apk路径

步骤6:在需要的地方调用布丁,实现热修复

MyApplication.getInstance().getPatchManager().addPatch(path);

代码虽然简单,但是真正要自己慢慢摸索实现,还是费了一些时间,所以把过程分享出来,希望大家能少走弯路

最后把我集成的项目共享出来:

AndFix集成项目

相关文章推荐

Android AndFix热修复demo

  • 2017年08月01日 11:13
  • 14.54MB
  • 下载

AndFix热修复学习 - 《Android必备技能》

AndfixTest阿里Andfix学习demogithub:https://github.com/andoop/AndfixTest大概原理 通过修改底层的c代码,将方法指针从错误的方法指向补丁...
  • andoop
  • andoop
  • 2016年09月06日 14:15
  • 319

33.Android热修复技术:AndFix的使用方法

Android热修复技术:AndFix的使用方法

Android 热修复 - AndFix 使用心得

前言: 对于AndFix的深层次思想和原理,我一直半懂不懂,介绍一个讲述原理的博文 Android App 线上热修复方案,其中所说的Xposed的原理操作看得萌萌哒,等慢慢消化吧,本文只是详细记录...

Android 在线热修复框架 AndFix 初步

AndFix工作流程关于AndFix的基本使用和使用流程在AndFix官方Github上已经说的比较详细,这里提取一下基本的修复流程,帮助初次使用者快速的使用AndFix,下面是简要流程图。上面的流程...

Android 热修复AndFix的简单使用介绍

AndFix是一个Android App的在线热补丁框架。使用此框架,我们能够在不重复发版的情况下,在线修改App中的Bug。AndFix就是 “Android Hot-Fix”的缩写。 就目前来...

Android-AndFix 热修复框架原理及源码解析

AndFix原理AndFix的原理就是方法的替换,把有bug的方法替换成补丁文件中的方法。 注:在Native层使用指针替换的方式替换bug方法,已达到修复bug的目的。使用AndFix修复热修复的整...

Android热修复之AndFix

热修复之AndFix Android热修复技术类型有三大流派:QQ空间补丁方案、阿里AndFix以及微信Tinker,它们在原理各有不同,适用场景各异,这里小编会只讲解阿里AndFix,了解其他两种...
  • Wshiduo
  • Wshiduo
  • 2017年02月08日 09:47
  • 122
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 热修复之AndFix
举报原因:
原因补充:

(最多只允许输入30个字)