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原理解析及案例使用

编码美丽 2016-11-21 17:51 一、前言 最近腾讯弄出一个Tinker热修复框架,那么本文先不介绍这个框架,先来介绍一下阿里的一个热修复框架AndFix,这个框架出来已经很长时...
  • u011277123
  • u011277123
  • 2016年11月22日 09:44
  • 1690

Alibaba-AndFix Bug热修复框架的使用

AndFix这篇主要介绍alibaba的AndFix项目的使用,下一篇介绍 AndFix原理及源码解析。Github:https://github.com/alibaba/AndFixAndFix介绍...
  • qxs965266509
  • qxs965266509
  • 2015年11月13日 10:40
  • 24793

Android热修复框架AndFix原理解析及使用

最近腾讯弄出一个Tinker热修复框架,那么本文先不介绍这个框架,而是先来介绍一下阿里的一个热修复框架AndFix,这个框架出来已经很长时间了,但是看网上没有太多非常详细的讲解,这里就来做一次分析。正...
  • jiangwei0910410003
  • jiangwei0910410003
  • 2016年11月24日 08:51
  • 12452

Android AndFix热修复demo

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

Android热修复:Andfix和Hotfix,两种方案的比较与实现2,hotfix

  • 2016年05月10日 18:02
  • 48.84MB
  • 下载

Android热修复:Andfix和Hotfix,两种方案的比较与实现3,服务器代码

  • 2016年05月10日 18:04
  • 728B
  • 下载

Android热修复框架AndFix核心代码分析并改进

前言AndFix,全称是Android hot-fix,是阿里开源的一个Android热修复框架,允许APP在不重新发布版本的情况下修复线上的bug。就目前来说,AndFix支持Android 2.3...
  • weelyy
  • weelyy
  • 2017年12月26日 21:09
  • 84

Android热修复:Andfix和Hotfix,两种方案的比较与实现

Andfix和hotfix是两种android热修复框架。 android的热修复技术我看的最早的应该是QQ空间团队的解决方案,后来真正需要了,才仔细调查,现在的方案中,阿里有两种Dexpose...
  • u013378580
  • u013378580
  • 2016年06月05日 00:02
  • 2045

Android 应用热修复工具 AndFix

之前跟大家介绍一个Alibaba的框架dexposed框架,此框架能够动态的从线上完成一些补丁的工作。但是,由于它的性能和兼容性(不支持ART)所以,很多朋友都决定不再研究此框架。 今天,这里我...
  • tenggangren
  • tenggangren
  • 2015年10月28日 07:39
  • 792

Android 热修复 - AndFix 使用心得

前言: 对于AndFix的深层次思想和原理,我一直半懂不懂,介绍一个讲述原理的博文 Android App 线上热修复方案,其中所说的Xposed的原理操作看得萌萌哒,等慢慢消化吧,本文只是详细记录...
  • cjh_android
  • cjh_android
  • 2016年07月13日 14:48
  • 512
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 热修复之AndFix
举报原因:
原因补充:

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