GithubHelp home page GithubHelp logo

ytl2009 / sdkhotfix Goto Github PK

View Code? Open in Web Editor NEW

This project forked from feelschaotic/sdkhotfix

0.0 0.0 0.0 34.21 MB

在用户规模千万级别的app中验证过,稳定无兼容问题,5分钟让你的SDK拥有热修复能力。A SDK hotfix library with stable verified in tens of millions of users can be accessed in only five minutes.

Kotlin 46.17% Java 39.87% Groovy 13.96%

sdkhotfix's Introduction

SDKHotFix

Download PRs Welcome License

在用户规模千万级别的app中验证过,稳定、无兼容问题,5分钟即可接入,满足你的SDK快速拥有热修复能力的需求。


目录

  • 一、介绍
    • 作用
    • 优点
    • 待改进
  • 二、接入指南
  • 三、使用指南和演示
  • 四、原理
  • 五、相关文章
  • 六、鸣谢
    • 改进说明

查看演示 Demo | 文档

一、介绍

相信 APP 热修复大家都很熟练了,那如果 SDK 想要实现热修复呢?

这就是本项目诞生的背景,让 SDK 开发者能快速赋予 SDK 热修复的能力,不要踩我踩过的坑。(捂脸哭)

作用

如果你是 SDK 开发者,你能得到什么?

  • 5 分钟即可让你的 SDK 拥有热修复的能力
  • 节省踩坑和开发成本

如果你是一个学习者,你能通过这个项目学到什么?

  • hook and create Gradle Task
  • Kotlin + groovy
  • 热修复
  • 非对称加密+对称加密
  • 扩展美团 Robust 开源库,使其具有其他热更库不具备的补丁回滚功能
  • 数据和监控思维

优点

  1. 无兼容问题
  2. 实时生效
  3. 修复成功率高达99.9%
  4. 在用户规模千万级别的app中验证过,可信赖
  5. 支持补丁异常自动失效,不用再担心补丁造成crash啦~

待改进

  1. 在编译阶段插件侵入了产品代码,对运行效率、方法数、包体积还是产生了一些副作用。(可指定某些class无需插入方法,减少插桩数)
  2. so和资源的替换目前暂未实现
  3. 对于只有字段访问的函数无法直接修复,可通过调用处间接修复
  4. 尚未在MAC环境下测试
  5. 上传的GradleTask支持补丁按包名存档

二、接入指南

点击SDK热修复SDK接入文档,开始接入吧!

关于常见问题的解决,请参看 Wiki

三、使用指南和演示

用于接入后SDK的打包、补丁代码的编写、下发、上传。

常见问题和异常汇总,遇到问题前请先自查

四、原理

五、相关文章

六、鸣谢

灵感来源于oubowu大大的 RobustForSdk,感谢!

改进说明

相比于 RobustForSdk 库,本库:

  1. 稳定性提升:
  • fix 若干 bug
  • fix 与业务方的资源 ID 冲突问题
  1. 便捷性提高:
  • 使用 gardle Task 脚本上传补丁,比起 Window 程序更方便
  • 抽取成库,业务 SDK 只需要最小步骤即可快速接入
  1. 支持度提高:
  • 使用了阿里云 oss 管理补丁
  • 支持了打包 SDK 后上传 jcenter

sdkhotfix's People

Contributors

feelschaotic avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.