热修复 tinker接入及源码分析( 三 )

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    到此API相关的就结束了,剩下的就是考虑patch如何生成 。
    patch生成
    提供了patch生成的工具,源码见:-patch-cli,打成一个jar就可以使用,并且提供了命令行相关的参数以及文件 。
    命令行如下:
    java -jar tinker-patch-cli-1.7.7.jar -old old.apk -new new.apk -config tinker_config.xml -out output
    • 1
      • 1

      需要注意的就是.xml,里面包含的配置,例如签名文件等 。
      这里我们直接使用提供的签名文件,所以不需要做修改,不过里面有个的item修改为与本例一致:
      • 1
        • 1

        大致的文件结构如下:
        热修复 tinker接入及源码分析

        文章插图
        可以在-patch-cli中提取,或者直接下载文末的例子 。
        上述介绍了patch生成的命令,最后需要注意的就是,在第一次打出apk的时候,保留下生成的文件,在/build////.txt 。
        可以copy到与-rules.pro同目录,同时在第二次打修复包的时候,在-rules.pro中添加上:
        -applymapping mapping.txt