Android基于AndFix的热修复实现

热修复出现也有一定时间了,一直没有去好好了解,这段时间刚好有需要,去了解了一下,顺便做个小demo和教程

本文基于Android studio环境,请大家参考各自的环境,解决相应问题,

demo中只是通过热修复修改了点击后的toast文案,是热修复的一个简单应用吧

热修复不能修改界面UI的改变,只能改变逻辑方法。

1、首先添加AndFix的依赖包



2、 创建一个自己的MyApplication extends Application,在MyApplication中创建一个PatchManager对象,

       在onCreate()方法中,对PathManager进行初始化、设置版本号、加载已经加载过的apatch文件,代码如下


3、在启动时(第一个activity或者需要时),从服务器下载对应的apatch文件,然后用PatchManager加载apatch文件的本地路径,代码如下,“”中应放置.apatch文件的本地路径



4、添加混淆



5、如何生成apatch文件呢?这时候需要用工具来进行生成,首先要将老版本的代码打成release包的apk文件,然后将新版本的代码也打包成release包的apk文件,必须要签名文件进行签名,

注意:打包之前先进行一下build-->clean操作,否则apkpatch可能会执行错误,然后用apkapatch工具,进行比对,我上传了apkpatch的工具包链接如下,其中包含了使用方法,大家可以了解一下。

http://download.csdn.net/detail/ak341221/9743172

顺便说下apakpatch的使用方法吧

.bat文件是提供给windows使用的

.sh文件是提供给mac环境使用的,这里以mac环境为例讲解

1、打开终端

2、将.sh文件拖入终端 不要敲回车,在终端显示的文字后面继续输入命令

      -f 新版本路径 -t 老版本路径 -o 输出目录路径 -k 打包所用的keystore文件路径 -p keystore文件的密码 -a keystore文件别名 -e keystore文件别名密码

敲完上面的命令,然后敲回车,如果有错误提示,检查一下自己的路径是否不对,如果提示smail文件不存在,则可以在file文件夹内创建一个smail文件夹再进行命令行之行。

3、执行成功后,会在file文件夹内生成一个******.apatch文件,这个文件就是我们需要的

6、  demo说明

因为没有自己搭建服务器,所以我用了个笨方法来测试热修复功能是否成功,

在demo中,第二个activity在onCreate时,会下载一个图片,存放在相册文件夹下的子文件夹,图片下载成功后会提示下载成功,

我用文件管理工具把上面第5步生成.apatch文件放在了这个子文件夹下面(pc操作),

然后手机上点击这个界面的按钮“加载修复文件”,把.apatch文件加载进来,这个时候老版本的弹出“老版本”的toast,

退出应用再进入,到第二个activity 再点击“加载修复文件”,提示“热修复成功”的toast,

说明热修复已经实现。

demo地址(仅供参考):http://download.csdn.net/detail/ak341221/9743205


希望能对大家有所帮助。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值