SDKHotfix(SDK热修复工具包)是一款让SDK开发者能快速赋予SDK热修复的能力.
无兼容问题
实时生效
修复成功率高达99.9%
在用户规模千万级别的app中验证过,可信赖
支持补丁异常自动失效,不用再担心补丁造成crash啦~
在编译阶段插件侵入了产品代码,对运行效率、方法数、包体积还是产生了一些副作用。(可指定某些class无需插入方法,减少插桩数)艺术字生成器下载手机版-艺术字生成器(免费制作)1.0.0 最新版
so和资源的替换目前暂未实现
对于只有字段访问的函数无法直接修复,可通过调用处间接修复
上传GradleTask尚未在MAC环境下测试
上传的补丁支持按包名存档
要商用的小伙伴要注意,建议换成自己的后端接口或自己续费一个bmob应用,因为bmob云函数服务超过40天需要收费,所以本项目需要定期更新应用秘钥。
5分钟即可让你的SDK拥有热修复的能力
节省踩坑和开发成本
hookandcreateGradleTask
Kotlin+groovy
热修复
非对称加密+对称加密
扩展美团Robust开源库,使其具有其他热更库不具备的补丁回滚功能
数据和监控思维
1.添加配置和开关
1.1在项目gradle.properties中添加开关和配置
#接入第一步:添加配置和开关
#Application模式,Robust需要是Application才能插入代码和打补丁
isAppModule=false
#Application模式下开启这个就可以打补丁
isPatchModule=false
#你的业务sdk的包名
sdkPackageName=com.feelschaotic.samplesdk
#是否开启混淆,一般情况下sdk默认不混淆
isProguard=false
#业务sdk版本号,请保持三位,且无后缀,且在打包前就要确定好版本,确保版本打在包中
SDK_VERSION=0.0.1
#业务sdk的upload_artifact_id
SDK_ARTIFACT_ID=MY-SAMPLES-SDK
1.2在sdkbuild.gradle中加入配置替换原有的 applyplugin:'com.android.library'
//注意!!一定要放在文件最前面
//applyplugin表示该项目会使用指定的插件,sdk对应的是com.android.library
if(isAppModule.toBoolean()){
applyplugin:'com.android.application'
if(isPatchModule.toBoolean()){
//制作补丁时将这个打开,auto-patch-plugin紧跟着com.android.application
applyplugin:'auto-patch-plugin'
}
applyplugin:'robust'
}else{
applyplugin:'com.android.library'
}
applyfrom:rootProject.getRootDir().getAbsolutePath()+"/packPlugin.gradle"
1.3加入buildConfigField
//视情况而定,如果你在初始化热更sdk时的传入的版本号有另外的取值方式,也可以不加此buildConfig
android{
defaultConfig{
buildConfigField"String","SDK_VERSION",""${SDK_VERSION}""
buildConfigField"String","SDK_ARTIFACT_ID",""${SDK_ARTIFACT_ID}""
}
}
1.4在sdkbuild.gradle中配置签名
android{
//签名的配置
signingConfigs{
debug{
}
//release版本的签名
release{
//签名的一些信息
keyAlias'key0'
keyPassword'123456'
storeFilefile('./hotfix.jks')
storePassword'123456'
}
}
}
1.5配置混淆
复制粘贴配置到sdkbuild.gradle
android{
buildTypes{
innerTest{
//...
matchingFallbacks=['debug','release']
}
release{
signingConfigsigningConfigs.release
minifyEnabledisProguard.toBoolean()//此处取的isProguard就是1.1在项目`gradle.properties`中添加的isProguard开关
proguardFilesgetDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
}
}
sourceSets{
main{
//Application和Library清单文件处理方式不同
if(isAppModule.toBoolean()){
manifest.srcFile'src/main/debug/AndroidManifest.xml'
}else{
manifest.srcFile'src/main/release/AndroidManifest.xml'
}
}
}
}
复制粘贴示例sdk的lib-proguard-rules.pro到业务SDKmodule目录下,修改文件中的包名
接着配置好sdk自己的混淆规则
android{
defaultConfig{
consumerProguardFiles'lib-proguard-rules.pro'
}
}
2.导库
在sdk的 build.gradle 中引入库
implementation'com.github.feelschaotic:SDKHotFix:XX-RELEASE'
XX为最新SDK版本号,例如implementation'com.github.feelschaotic:SDKHotFix:1.3-RELEASE'
注:最新版本见README标志
在根项目build.gradle中加入maven配置
repositories{
//接入第二步:增加maven配置
maven{url"https://mvnrepository.com/"}
}
...
allprojects{
repositories{
maven{url"https://mvnrepository.com/"}
}
}
再添加classpath配置
//Application模式下引入Robust脚本插件
if(isAppModule.toBoolean()){
classpath'com.github.feelschaotic:Robust.gradle-plugin:0.4.87.5-RELEASE'
classpath'com.github.feelschaotic:Robust.auto-patch-plugin:0.4.87.5-RELEASE'
}
4.复制示例项目的脚本和文件
4.1复制MainActivity.java到sdkmodule的java包名目录下(目的是为了application打包配置不报错)
4.2复制debug和release2个文件夹到main目录下,修改里面的AndroidManifest.xml,更改为你自己业务SDK的包名
<manifestpackage="${packageName}"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
4.3复制robust.xml到sdkmodule根目录,更改下包名
4.4复制packPlugin.gradle到项目的根目录
5.初始化热更库
valconfig:HotfixConfig=HotfixConfig.Builder().debug(true)
.appVersion(BuildConfig.VERSION_NAME)
.packageName(BuildConfig.APPLICATION_ID)
.build()
HotfixManager.init(application,config)
6.添加权限
<uses-permissionandroid:name="android.permission.INTERNET"/>
<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
7.加入混淆
-keepclasscom.alibaba.sdk.android.oss.**{*;}
-dontwarnokio.**
-dontwarnorg.apache.commons.codec.binary.**
展开内容
Ocmo官方版下载-Ocmo手游1.0.17 ios正版
绍兴市中医院手机版-绍兴市中医院app1.0.0 官网最新版
中文书城手机版下载-中文书城app8.0.3 官方版
小丁家长手机版官网下载-小丁家长安卓手机版1.0 安卓官方版
夜之森手游1.0 苹果版
掌上重图App下载-重庆图书馆(掌上重图)1.5 安卓版
一起剧本杀app下载-剧本杀app5.5.1 最新版
State.io帝国扩张下载-State.io中文版0.7.6 安卓版
花朵物语识别软件下载-花朵物语识别软件1.3 安卓版
音频调整软件-混音器调整专家v1.0 绿色免费版
贝橙儿童健康管理软件下载-贝橙儿童健康管家1.2 安卓最新版
勇者斗恶龙宿敌iOS下载-勇者斗恶龙宿敌手游正式版1.0.4 iphone版
成语泡泡消红包版下载-成语泡泡消赚钱版1.201免费版
成语接财神红包版下载-成语接财神1.0.0 最新版
疯狂动物园九游版下载-疯狂动物园1.29.0 安卓九游版
chomog蒙古下载-chomog手机版1.1.1 最新版
美食美客app2.6.0 免费版
DiskGenius数据恢复软件免费下载-DiskGenius数据恢复软件官方版4.9.2 专业版
BT资源搜索大师(BtResourceSearch)v1.2 绿色免费版
JavaScript速查工具1.0 免费版
米加小镇三套公寓下载-米加小镇三套公寓最新版本1.11 免费版
超慢网页邮箱提取发送器0.3 绿色免费版
清瞳监控app下载-清瞳监控app1.8.1 安卓版
茉莉杜翠兰下游戏下载-孙美琪疑案茉莉手游1.0.0 安卓完整版【附攻略】
视频格式工厂软件下载-Audio Video Factory软件5.2 安卓版
公益服手游盒子app下载-公益服手游盒子appV4.4.7 免费版
7.7/102.2M
这里的公益服手游盒子app和我们一般的游戏盒子不一样,其他的游戏盒子都是通过提供各种各样的游戏、游戏资讯、游戏攻略、以及游戏社区等等功能的,而公益服手游盒子ap...
8.8/116.6M
幻境大冒险是一款好玩的休闲冒险手游,为玩家带来了精彩的玩法,精彩的战斗模式,Q萌的角色造型,非常有意思的冒险!幻境大冒险手游介绍《幻境大冒险》是一款Q版rpg冒...
9.0/138.6M
想快速发送大量咚咚消息吗?想减轻客服的压力吗?那这款京东咚咚消息批量发送工具一定能满足你的需求,日发信息10万以上,方便快速。相信他,不会有错的!京东咚咚消息批...
World of Funny fruit2(世界world滑稽果传奇手游)1.0.1 手机版
8.6/1,102.2M
世界world滑稽果传奇是世界world系列最新游戏,游戏还是以角色扮演RPG为主,不需要充值,完全免费,照样可以成为一代大神,增加更多技能,加入最新装备,让玩...
9.8/675.6M
这到底怎么守1.2正式版下载,恶搞地图继续更新了。此版本新增了一个英雄,加强了很多游戏中的道具技能,想要玩一玩的小伙伴们可以下载哦。加强了小骷髅的狂热攻速这到底...
婚礼庆典婚礼海报psd素材下载-婚礼庆典婚礼海报2017最新版高清无水印版
8.1/698.9M
2017下半年马上就要到了,中国式结婚最火爆时间就是每年下半年选择结婚的用户特别多,在这里东坡特意为大家带来婚礼庆典婚礼海报2017最新版,欢迎有需要的用户下载...
端午节贺卡下载-端午节电子贺卡素材【端午节快乐】源文件免费下载
9.2/1,949.7M
端午节是中国的传统节日,又称端阳节、午日节、五月节等,每年农历五月初五就是端午节了,这里小编分享的是端午节电子贺卡素材,包含fla源文件,喜欢的朋友可以下载下来...
8.0/324.6M
凡人青云手游是一款最新的修仙类游戏,游戏拥有精致唯美的场景以及有趣的仙侠玩法,还有独特的升级系统和自由交易系统,玩家将在这里开启一场最有趣的仙侠游戏!游戏介绍凡...
昆虫模拟飞生存手游下载-昆虫模拟飞生存游戏1.0 苹果官方版
8.8/1,103.4M
你喜欢动物或者是昆虫模拟器吗?在这里为大家带来了昆虫模拟飞生存手游。玩家将扮演一个小飞虫,你的微世界观会变得很强大,人变成了敌人,非常的有意思。喜欢玩这类游戏的...
7.9/1,768.5M
学信,是一种学习方式,为学校量身打造智慧校园平台,为学生及老师提供手机阅卷,班级管理,作业管理,学信课堂,家校沟通,互动广场,成长档案等服务。作业管理布置作业引...
7.9/274.9M
让子弹飞是一款很经典的小游戏,是根据经典的电影让子弹飞改编的游戏。游戏背景也是电影里的场景。那么这款游戏都有哪些特点呢?好不好玩呢?接下来,小编来给大家介绍一下...
7.5/1,094.5M
迷失尸境是一款末日僵尸题材的休闲手游,你钟爱的宠物不幸变成了丧尸,你将如何面对这一切,为了活下去,你得不惜一切代价!迷失尸境玩法:1、我们需要通过各种手段不断的...
i川农官方下载最新版2024-i川农appV1.2.5 安卓版
8.8/339.1M
四川农业大学校园移动客户端【i川农app】下载,"I川农"App是四川农业大学为师生和校友打造的移动应用平台。通过这个应用,用户可以随时随地...
8.9/582.3M
终极怪兽决斗游戏是一款怪兽养成之后的对决战斗游戏,这里有很多的怪兽玩家需要收集之后让它成长,每一个强大的怪兽前面都是弱小的,玩家需要反复的练习它来战斗之后就会取...
8.6/1,974.5M
麻烦挤一挤是一款休闲益智类拼图游戏,用户作为列车员,帮助上班族挤进地铁,到达目的地。在本游戏中,你会遇到漂亮小姐姐,帅气小哥哥,网红达人,历史名流,游戏中不光能...
秒领尚品网CEO微信红包软件-小强尚品网注册抽红包软件1.0 最新免费版【附注册机】
8.4/1,740.6M
尚品网全新给力活动,其CEO发放1亿微信红包,人人有份,亲测大于1元秒推,当然,也有很多领到6块的。这里,小编给大家提供一款尚品网注册抽红包软件,内附注册机,二...
8.4/309.4M
可以多中心使用的招投标APP,扫码签章、加解密等等基础功能为你服务,可以参与跨中心交易的移动APP,标信智链欢迎各金融机构对接洽谈电子保函接口,如果你的交易以及...
图司机编辑器app下载-图司机在线海报制作app1.3.5 手机版
9.2/854.8M
随时随地轻松在线设计,版权内容放心商,154项分类,轻松在线设计,简单3步,10秒出图,移动端APP/WEB端/小程序多端共享,一个账号,多端共享图司机在线海报...
lol时间艾克自制皮肤下载-lol时间刺客苍穹之光艾克自制皮肤1.0 稳定版
8.6/1,342.8M
玩lol的朋友一款知道苍穹之光的皮肤,现在小编我帮你找到了一款最新的lol时间刺客苍穹之光艾克自制皮肤,让你在游戏中好好装个逼。lol时间刺客苍穹之光艾克自制皮...
古老的信条游戏下载-古老的信条(ancient creed)1.0.0 手机最新版
8.4/1,303.4M
古老的信条(ancientcreed)是一款策略卡牌游戏,在游戏中玩家需要收集卡牌,并且组合后才能自己的团队,进行各种战役,期间不断地强化其属性,利用策略的方式...
9.5/709.3M
光影魔术手迅雷会员定制版是专门为迅雷会员定制,支持迅雷会员使用迅雷会员账号登陆。迅雷会员定制版主要功能:1.支持迅雷会员账号登录,全新迅雷会员特有皮肤。2.支持...
大眼睛兔兔Bunny仔可爱QQ表情工具-大眼睛兔兔Bunny仔可爱QQ表情包
9.3/369.4M
一款惹人怜爱的qq表情包,大眼睛兔兔Bunny仔QQ表情是一只王子服的小兔子表情,蓝色的眼睛,粉色的脸蛋,才艺全能,表情很乖,有没有一见钟情的感觉呢!使用方法:...
8.3/1,891.4M
Y码验证码接收平台(接收手机验证码的平台)是一款由Y码团队专业打造的第三方代收、接收手机验证码的平台。有需要的赶紧来下载使用吧。Y码验证码接收平台简介码能够解决...
9.3/1,045.5M
51神座游戏是一款打击感非常强的热血RPG手游。这款游戏的画风非常的精致,不管是游戏场景的建设还有任务的建模都非常的精致好看,而且人物的外观和技能设计也非常的酷...
NavisworksSimulate2017 破解版下载-AutodeskNavisworksSimulate2017 中文破解版免费版
7.7/604.2M
AutodeskNavisworksSimulate2017破解版可以永久免费使用,这是一款可以将三维模型数据与计划相关联,以加快四维模拟速度的设计制图软件,通...