AnoleFix

Project Url: dodola/AnoleFix
Introduction: Another hotfix 另一个热修复方案 Alpha,来自 InstantRun 和 Robust 类似
More: Author   ReportBugs   
Tags:

Another hotfix 另一个热修复方案 大部分代码来自 InstantRun。这个方案很久之前就和小伙伴讨论过,一直没实现,现完成了 Alpha 版,后期再优化。

注:该项目暂时没有应用到具体上线应用中,暂时只做技术展示

Feature

  1. 可实现动态实时修复
  2. 可实现热插拔(待实现,只实现了动态修复功能,后期加上动态撤销补丁功能)
  3. 兼容 ART 和 DalvikVM 虚拟机,4.0-7.0,不会出现类似 hotfix 方案在 art 下虚拟机 quick 引用指针错乱造成的崩溃情况
  4. 补丁包动态生成,使用方式和 RocooFix 一致,但某些功能待完善

Known issue

  1. 补丁打包速度待优化
  2. 有些未考虑到的补丁逻辑还待补充
  3. 性能会略有消耗
  4. 暂时只支持开启混淆状态下的补丁打包

Use

Gralde 配置

buildscript {
    repositories {
        jcenter()
        maven{
            url 'https://dl.bintray.com/dodola/maven'
        }

    }
    dependencies {
        classpath 'dodola.anole.plugin:gradle_plugin:1.0.1'
    }
}

//在 app 的 gradle 增加
apply plugin:'dodola.anole.plugin'

rocoo_fix {//此处和 rocoo_fix 的用法一样,但暂时只有 preVersionPath 的功能
    preVersionPath = '1'
}
  Anole.applyPatch(context, patch_path);

Porguard

-keep class dodola.anole.runtime.** { *; }
-keep class dodola.anole.lib.** { *; }
Apps
About Me
GitHub: Trinea
Facebook: Dev Tools