All Projects → feelschaotic → 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.

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Sdkhotfix

Tinker Manager
微信tinker补丁管理,后端代码+客户端sdk
Stars: ✭ 670 (+14.53%)
Mutual labels:  sdk, hotfix, robust
Itext7
iText 7 for Java represents the next level of SDKs for developers that want to take advantage of the benefits PDF can bring. Equipped with a better document engine, high and low-level programming capabilities and the ability to create, edit and enhance PDF documents, iText 7 can be a boon to nearly every workflow.
Stars: ✭ 913 (+56.07%)
Mutual labels:  library, sdk
Sumologic Python
Sumologic's python api library
Stars: ✭ 6 (-98.97%)
Mutual labels:  library, sdk
Colore
A powerful C# library for Razer Chroma's SDK
Stars: ✭ 121 (-79.32%)
Mutual labels:  library, sdk
Polysnap
A work in progress polygon operations library with integer snap-rounding
Stars: ✭ 14 (-97.61%)
Mutual labels:  library, robust
Itext7 Dotnet
iText 7 for .NET is the .NET version of the iText 7 library, formerly known as iTextSharp, which it replaces. iText 7 represents the next level of SDKs for developers that want to take advantage of the benefits PDF can bring. Equipped with a better document engine, high and low-level programming capabilities and the ability to create, edit and enhance PDF documents, iText 7 can be a boon to nearly every workflow.
Stars: ✭ 698 (+19.32%)
Mutual labels:  library, sdk
Amadeus Node
Node library for the Amadeus Self-Service travel APIs
Stars: ✭ 91 (-84.44%)
Mutual labels:  library, sdk
Decentralized Internet
A SDK/library for decentralized web and distributing computing projects
Stars: ✭ 406 (-30.6%)
Mutual labels:  library, sdk
Newnode
NewNode decentralized Content Distribution Network
Stars: ✭ 223 (-61.88%)
Mutual labels:  library, sdk
Sdk
Library for using Grafana' structures in Go programs and client for Grafana REST API.
Stars: ✭ 193 (-67.01%)
Mutual labels:  library, sdk
Kube Aws Iam Controller
Distribute different AWS IAM credentials to different pods in Kubernetes via secrets.
Stars: ✭ 137 (-76.58%)
Mutual labels:  sdk, robust
Let
Annotation based simple API flavored with AOP to handle new Android runtime permission model
Stars: ✭ 532 (-9.06%)
Mutual labels:  gradle-plugin, library
Fosite
Extensible security first OAuth 2.0 and OpenID Connect SDK for Go.
Stars: ✭ 1,738 (+197.09%)
Mutual labels:  library, sdk
Robust
Robust is an Android HotFix solution with high compatibility and high stability. Robust can fix bugs immediately without a reboot.
Stars: ✭ 4,125 (+605.13%)
Mutual labels:  hotfix, robust
Librealsense
Intel® RealSense™ SDK
Stars: ✭ 5,652 (+866.15%)
Mutual labels:  library, sdk
Devkit
Stars: ✭ 561 (-4.1%)
Mutual labels:  sdk
Gradle Task Tree
Gradle plugin that adds a 'taskTree' task that prints task dependency tree
Stars: ✭ 573 (-2.05%)
Mutual labels:  gradle-plugin
Gradle Git
Git plugin for Gradle
Stars: ✭ 559 (-4.44%)
Mutual labels:  gradle-plugin
Small
A small framework to split app into small parts
Stars: ✭ 5,012 (+756.75%)
Mutual labels:  hotfix
Android Junit5
Testing with JUnit 5 for Android.
Stars: ✭ 580 (-0.85%)
Mutual labels:  gradle-plugin

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

二、接入指南

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

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

三、使用指南和演示

用于业务SDK接入

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

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

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的演示效果即是本示例

四、原理

五、相关文章

六、改进说明

  1. 稳定性提升:
  • fix 若干 bug
  • fix 与业务方的资源 ID 冲突问题
  1. 便捷性提高:
  • 使用 gardle Task 脚本上传补丁,比起 Window 程序更方便
  • 抽取成库,业务 SDK 只需要最小步骤即可快速接入
  1. 支持度提高:
  • 使用了阿里云 oss 管理补丁
  • 支持了打包 SDK 后上传 jcenter
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].