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.
Stars: ✭ 585
Programming Languages
kotlin
9241 projects
Projects that are alternatives of or similar to Sdkhotfix
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
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
Gradle Task Tree
Gradle plugin that adds a 'taskTree' task that prints task dependency tree
Stars: ✭ 573 (-2.05%)
Mutual labels: gradle-plugin
SDKHotFix
在用户规模千万级别的app中验证过,稳定、无兼容问题,5分钟即可接入,满足你的SDK快速拥有热修复能力的需求。
目录
- 一、介绍
- 作用
- 优点
- 待改进
- 二、接入指南
- 三、使用指南和演示
- 四、原理
- 五、相关文章
- 六、改进说明
一、介绍
相信 APP 热修复大家都很熟练了,那如果 SDK 想要实现热修复呢?
这就是本项目诞生的背景,让 SDK 开发者能快速赋予 SDK 热修复的能力,不要踩我踩过的坑。(捂脸哭)
作用
如果你是 SDK 开发者,你能得到什么?
- 5 分钟即可让你的 SDK 拥有热修复的能力
- 节省踩坑和开发成本
如果你是一个学习者,你能通过这个项目学到什么?
- hook and create Gradle Task
- Kotlin + groovy
- 热修复
- 非对称加密+对称加密
- 扩展美团 Robust 开源库,使其具有其他热更库不具备的补丁回滚功能
- 数据和监控思维
优点
- 无兼容问题
- 实时生效
- 修复成功率高达99.9%
- 在用户规模千万级别的app中验证过,可信赖
- 支持补丁异常自动失效,不用再担心补丁造成crash啦~
待改进
- 在编译阶段插件侵入了产品代码,对运行效率、方法数、包体积还是产生了一些副作用。(可指定某些class无需插入方法,减少插桩数)
- so和资源的替换目前暂未实现
- 对于只有字段访问的函数无法直接修复,可通过调用处间接修复
- 上传GradleTask尚未在MAC环境下测试
- 上传的补丁支持按包名存档
- 要商用的小伙伴要注意,建议换成自己的后端接口或自己续费一个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的演示效果即是本示例
四、原理
五、相关文章
六、改进说明
- 稳定性提升:
- fix 若干 bug
- fix 与业务方的资源 ID 冲突问题
- 便捷性提高:
- 使用 gardle Task 脚本上传补丁,比起 Window 程序更方便
- 抽取成库,业务 SDK 只需要最小步骤即可快速接入
- 支持度提高:
- 使用了阿里云 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].