在用户规模千万级别的 app 中验证过,稳定无兼容问题,5 分钟让你的 SDK 拥有热修复能力

SDKHotFix

项目地址:feelschaotic/SDKHotFix 

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

更多:作者   提 Bug   

标签:

 

 

  

在用户规模千万级别的 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. 上传 GradleTask 尚未在 MAC 环境下测试
  5. 上传的补丁支持按包名存档
  6. 要商用的小伙伴要注意,建议换成自己的后端接口或自己续费一个 bmob 应用,因为 bmob 云函数服务超过 40 天需要收费,所以本项目需要定期更新应用秘钥。

二、接入指南

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

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

三、使用指南和演示

Module 说明:

  • SDKHotFix\APP:调试 HotfixSDK 用
  • SDKHotFix\buildSrc:upload 补丁用
  • SDKHotFix\SDK:赋予业务 SDK 热修复能力的 SDK
  • SDKHotFix\business_sdk\APP:模拟业务 app 接入了有热修复能力的业务 SDK,上述 gif 的演示效果即是本示例
  • SDKHotFix\business_sdk\samplesdk:模拟业务 SDK 如何接入 SDKHotFix,上述 gif 的演示效果即是本示例

    四、原理

五、相关文章

六、鸣谢

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

改进说明

相比于 RobustForSdk 库,本库:

  1. 稳定性提升:
  2. fix 若干 bug
  3. fix 与业务方的资源 ID 冲突问题
  4. 便捷性提高:
  5. 使用 gardle Task 脚本上传补丁,比起 Window 程序更方便
  6. 抽取成库,业务 SDK 只需要最小步骤即可快速接入
  7. 支持度提高:
  8. 使用了阿里云 oss 管理补丁
  9. 支持了打包 SDK 后上传 jcenter
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值