TreyCai / gradle-catfix

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

gradle-catfix

本工程是Catfix的gradle插件。通过该插件可轻松完成补丁包的制作。

注意:android gradle plugin的最低版本为1.0.0

安装


在build.gradle中添加以下代码:

buildscript {
  repositories {
    jcenter()
    mavenCentral()
    mavenLocal()
  }
  dependencies {
    classpath 'com.github.freedtice:gradle-catfix:0.1.2'
}

apply plugin: 'com.android.application'
apply plugin: 'com.github.freedtice.catfix'

配置


android {
    ......
}
catfix {
    patchVersion 1
}
  • patchVersion: 必填参数, 整型, patch的版本号
  • releaseRecordDir: 选填, file类型, 默认为project.file("${project.projectDir.absolutePath}/releaseRecords")
  • patchDir: 选填, file 类型, 默认为project.file("${project.projectDir.absolutePath}/${appVersion}/${buildType|flavorName}${patchVersion}/patches")

如果使用了Proguard, 在proguard-rules.pro中添加:

-keep class me.soandky.catfix.android.ClassPreverifyPreventor

使用方法

  1. 当执行assemble任务时, 会在${releaseRecordDir}下生成以下文件:
  + releaseRecordDir
    + ${app version} # 即应用当前的版本号
      + ${build type| product flavor name} # build type, 如debug, release, 使用product flavor时, 会product flavor的名字
        - ${app name}-${build type}.apk # assemble生成的apk
        - md5.json # 编译生成的class文件(build/intermediates/classes)对应的md5值
        + proguard # proguard产生的文件副本
  1. 当需要打补丁时, 依照配置先设置patch版本号, 然后执行'../gradlew patchRelease'或'../gradlew patchDebug', 也可执行'../gradlew patch'. 完成后在${patchDir}下生成patch文件. 以默认配置为例:
  + releaseRecordDir
    + ${app version} #即应用当前的版本号
      + ${build type| product flavor name} # build type, 如debug, release, 使用product flavor时, 会product flavor的名字
        - ${app name}-${build type}.apk #assemble生成的apk
        - md5.json #编译生成的class文件(build/intermediates/classes)对应的md5值
        + proguard #proguard产生的文件副本
        + patches #patch dir
          - patch.dex  # 补丁包
          - diff.json # 差异文件对应的md5值
          + ${patch version} #patch version
            + classes #编译生成的class
              + diff #发生变化的class, 会被打入补丁
              + original #没有变化的class
          + jar
            - origin.jar #没有变化的class生成的jar
            - patch.jar #补丁jar
          + proguard
            - patch.jar #如果有打开proguard, 会执行proguard, 此为proguard后的补丁jar

关于Catfix

Catfix是一套Android热修复系统。

About

License:Apache License 2.0


Languages

Language:Groovy 100.0%