SDKHotfix(SDK热修复工具包)是一款让SDK开发者能快速赋予SDK热修复的能力.
在编译阶段插件侵入了产品代码,对运行效率、方法数、包体积还是产生了一些副作用。(可指定某些class无需插入方法,减少插桩数)
so和资源的替换目前暂未实现
对于只有字段访问的函数无法直接修复,可通过调用处间接修复
上传GradleTask尚未在MAC环境下测试
上传的补丁支持按包名存档
要商用的小伙伴要注意,建议换成自己的后端接口或自己续费一个bmob应用,因为bmob云函数服务超过40天需要收费,所以本项目需要定期更新应用秘钥。
无兼容问题
实时生效
修复成功率高达99.9%
在用户规模千万级别的app中验证过,可信赖
支持补丁异常自动失效,不用再担心补丁造成crash啦~
5分钟即可让你的SDK拥有热修复的能力无脑就是冲游戏下载-无脑就是冲手游1.0.1 安卓版
节省踩坑和开发成本
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.**
展开内容
浙政钉手机app下载-浙政钉app下载2.13.52 官方安卓版
速腾食品管理系统19.0102 经典版
Moldflow Adviser 2014下载-Moldflow Adviser 2014 官方版中文版【64位】
清风DJ网音乐免付费下载工具3.0 绿色免费版
极点五笔V6.5 标准特别版
月想雾之湖1.14地图下载-月想雾之湖1.14正式版附攻略和隐藏英雄密码
卡潮APP下载安装官方版-卡潮数字藏品交易平台1.7.16 最新版
恐怖奶奶圣诞版本下载-恐怖奶奶圣诞版8.19 手机版
多多团长app下载-多多团长2.14.0 官方版
Uptodown app下载-Uptodown客户端6.89 安卓版
消除它4(ClearIt 4)英文免安装版
美丽收app下载-美丽收1.0.3 最新版
视频广告屏蔽软件-广告屏蔽大师2.5.0.1 官方最新版
作业帮免费下载安装-作业帮扫一扫答题app14.35.4 最新版
捷哥的法杖网络问题诊断工具1.4.4.21613 绿色版
Kai Ge Windows优化工具下载-Kai Ge Windows优化工具1.4 最新版
我要成为铸剑师taptap下载-我要成为铸剑师新春礼包版2.0修改版
2022李永乐考研数学网课网站下载-李永乐数学(2022李永乐考研数学网课)1.0最新版
PC数码电脑钢琴软件下载-PC数码钢琴1.20 绿色免费版【电脑学钢琴软件】
Notiguy安卓版下载-NotiGuy灵动岛app1.7.7 最新版
万能软件激活器X3绿色版
2020请对我好一点表情包图片-2020请善待我带字图片大全无水印版
win10内存整理软件-小保姆win10内存整理软件1.0.04.08 免费下载
草图大师sketchup pro18.0.16975 官方版
宇涵办公资产管理软件8.2.10 单机免费版
9.3/909.6M
fastreader一款功能非常强大的压缩文件密码破解工具之一,该软件可以避开暴力破解的壁垒,直接从加密解密算法入手,能够对最常见的rarzip7z等压缩格式文...
华泰证券专业版3下载-华泰证券官方下载(华泰证券交易软件下载)6.09 官方正式版【专业版Ⅲ】
7.8/1,731.9M
华泰证券专业版是一个集高速行情、分析、专业资讯以及委托服务于一体的证券综合交易平台。软件提供了大量的组合页面,将行情、资讯、图表、技术分析与财务数据有机组合,让...
9.5/1,855.8M
空间冲突手游是一款以经典的冒险为玩法的动作手游,游戏以3d的引擎打造,游戏中你可以对人物进行自由的换装,多种种族人物角色可以选择,让玩法更加有趣!空间冲突手游介...
8.8/1,458.0M
环球付app是一款数字钱包管理软件,软件支持转账收款,用户可以直接通过软件进行资金交易,平台安全有保证,保障用户的财产安全,为用户带来便捷支付服务。软件特色:使...
车300二手车估价下载-车300二手车大众版5.1.6.01 最新版
8.5/844.9M
想知道二手车的价格吗?快来试试这款车300二手车大众版,帮助你计算二手车行业价格,提供专业的二手车估值和定价服务。 车300二手车大众版介绍国内最专业...
jsplacement汉化版下载-jsplacement软件1.3.0 绿色版
8.6/1,120.1M
随机生成电路板贴图软件,jsplacement不是直接生成电路板图片,只是生成贴图,在通过其他cg软件按需要完成最终制作,可以理解是一个辅助创作软件,至于用途看...
搞笑斗图表情包软件下载-搞笑斗图表情包app2.1 安卓手机版
8.4/158.8M
搞笑斗图表情包app是一款使用十分方便的手机表情包制作软件,软件支持海量表情包素材,你可以添加任意文字和小饰品,制作专属你的表情包。不再为没有搞笑表情而烦恼搞笑...
VSO PhotoDVD (制作成兼容DVD电影格式的动画片) 2.6b完全汉化绿色免费版
7.5/502.8M
VSOPhotoDVD可以创建一个生动的、在标准的家用DVD机上观看的数字照片幻灯演示。不需要浪费时间在复杂的创作上,你可以容易地与朋友或家人来一同分享你的数字...
音频切割工具-MP3文件分割器(Split Mp3 files)V1.0.0.5绿色版
8.7/1,147.4M
怎样分割mp3文件?把一个大MP3文件分割成很多小MP3文件找了半天,大部分的分割软件自动生成.ddt文件,还得修改后缀(找了批量修改文件,还得点半天文件夹)M...
9.0/1,937.2M
一款简单以及方便的快递查询软件在不少人手机上面都是可以使用到的,简快递软件简单以及轻巧,适合大部分用户直接查询,非常的方便!软件介绍简快递是一款简单,纯粹,无广...
封帝释魔天1.2.5地图下载-封帝释魔天1.2.5正式版附攻略和隐藏英雄密码
7.5/1,717.2M
封帝释魔天1.2.5正式版是一款非常好玩的魔兽防守类型地图,很多玩家都在关注,新版本更新了很多内容,修复了一些bug,提供了一些隐藏英雄密码分享!封帝释魔天1....
8.7/657.4M
物业工作管理服务是一款小区综合管理服务软件,集物业,保安,保洁,等综合与一体的管家服务。颠覆传统人力监管,覆盖所有岗位人员,为营造一个良好的物业环境而生。物业工...
家庭教师手游折扣端-中手游家庭教师折扣版1.10.1 最新版
10.0/796.3M
中手游家庭教师折扣版是根据动漫改编而来的手机游戏,动漫正版授权,在游戏中我们可以重温彭格列家族成长的故事。以更多经典的游戏元素让大家认可,动漫和游戏的完美结合。...
8.5/651.1M
一款可以帮你下载包含了大量图片和视频的知乎回答图片视频的工具,如果你在翻知乎的时候看到别人的回答附带的图片和视频都很不错,可以利用这款软件来获取这些图片和视频!...
dlink dir613说明书免费下载-dlink dir-613快速安装手册(无线路由器设置)pdf格式
7.9/1,285.0M
dlinkdir-613外置2根天线,1个10/100MbpsWAN口和4个10/100MbpsLAN口,dlinkdir-613怎么安装?dlinkdir-6...
9.6/1,006.2M
末日围城游戏是一款以生存为玩法的游戏,游戏中你需要采用你的策略进行生存,以末日的背景和众多不同角色可以选择,游戏有着等级划分,让玩起来十分好玩!末日围城介绍《末...
海贼王火影动漫播放器-海贼王动漫播放器(已添加火影)去广告弹窗绿色破解版
8.7/1,160.9M
海贼王,一款超级冒险的动漫之旅,很多的精彩剧情,让人记忆犹新,这款海贼王动漫播放器,让你不用四处去找,这里就有所有的剧集,让你看个过瘾,而且还添加了火影哦!海贼...
8.0/1,718.4M
每一个人的声音都会有特色,气泡语音app用你的声音去交友,软件中的男神女神非常的多,自由的聊天交流,感受到声音的魅力。气泡语音特色1、有不同的聊天室,加入感兴趣...
8.1/320.3M
跟一些店铺的朋友推荐下面的一款单机免费的老桃儿店铺系统,直接的可以为你提供更加方便的管理方式,同时也是方便你查询每一批订单的问题!老桃儿店铺系统使用注意免费版只...
9.4/259.2M
QQ空间助手,可用于批量开通QQ空间,支持批量改QQ空间头像/形象/发表日志/更换装扮/修改空间资料/上传相片等功能...主要功能:开通空间:自动识别QQ是否已...
入侵者真实机器人战争汉化版下载-入侵者真实机器人战争手谈汉化版1.0安卓中文版
8.3/728.5M
入侵者真实机器人战争汉化版是一款异世界的宇宙冒险游戏,游戏背景为宇宙太空,玩家需要利用众多机甲建立起塔防,防御敌人的攻击,同时要升级装备,提高自己的战斗力!入侵...
无人深空修改器下载-无人深空二十五项修改器v1.0 最新3dm免费版
8.8/1,199.7M
无人深空二十五项修改器全方面的为你提供各种各样的游戏服务,同时也是很多的人是需要的一些游戏功能,让你可以更快速的了解以及玩好这个游戏,有需要的话现在就可以试试这...
7.6/1,323.1M
关于LED大屏幕亮度控制方法的讲解。主要包括哪些呢?LED大屏幕亮度怎么控制? 两种控制LED亮度的方法。一种是改变流过LED的电流,一般...
9.8/1,059.4M
大家知道什么是4s店吗,其实也就是卖汽车的店子。非常的豪华大气哦。随着现在社会的不断发展,买车的人,不断地增多,4s店就要时刻保持整洁干净,仅仅有保洁人员的清扫...
eclipse2021下载-eclipse2021(Eclipse IDE for Eclipse Committers)2021-09(4.21.0) 免费版
9.3/166.9M
EclipseIDEforEclipseCommitters是eclipse2021的基础版本,可以通过安装各种插件来扩展eclipse的各项开发功能,ecli...