andfix使用说明

2016-03-18  本文已影响406人  sakuradream

andfix的主要功能是完成热更新,可以在不用下载新的apk的情况下完成对应用程序的更新。
Andfix的基本流程图如下所示


andfix原理

使用原理说明

在使用中,可以将整个使用过程分成两部分

原始apk和修复之后的apk的编写
  1. apk的编写
    如果计划在后续的apk更新中使用andfix完成,那么在编写原始apk时,需要添加andfix相关的内容。
    首先需要导入PatchManager
    PatchManager
    在使用时,主要可以分成三个步骤
    1.1 初始化
    1.2 loadPatch
    1.3 addPatch
    具体代码如下图
    andfix代码

初始化时init的参数是版本号,这里直接赋值为1.0,也可以通过PackageManager对象中的方法获取版本号,方法如下
mPatchManager.init(getPackageManager().getPackageInfo().versionName)
在通过这种方法获取版本号时,如果版本号有变化,则会导致所有的补丁被删除;如果版本号没有变化,那么会加载所有的补丁。

patch文件的生成

阿里本身提供了用来生成patch文件的工具apkpatch,apkpatch是一个压缩包,解压之后可以得到如下所示内容

apkpatch
windows下运行apkpatch.bat文件,linux下运行apkpatch.sh文件生成patch文件。

打开apkpatch.bat文件,可以看到其实apkpatch.bat文件是通过java -jar来调用apkpatch-1.0.3.jar包完成patch文件的生成

使用流程

  1. 从github上获取阿里提供的一个demo程序,demo程序的文件目录如下所示


    文件目录
  2. 在build.gradle中添加依赖


    添加依赖
  3. 编译运行demo程序,生成第一个apk
  4. 修改demo程序代码,替换函数调用,这里我是修改了函数中的一个变量的值。如下图所示


    第一个apk
    修改之后的apk
  5. 运行修改之后的代码,生成新的apk
  6. 使用apkpatch工具生成patch文件,将文件移动到手机sd卡上。(apkpatch的使用上边有描述)
  7. 重新运行第一个apk,查看日志可以发现完成修改


    第一个apk运行日志
    修改之后apk运行日志

patch文件不一定非要放在sd卡的根目录上,只要存放路径与代码中查找路径一致即可

上一篇 下一篇

猜你喜欢

热点阅读