5分钟即可让你的SDK拥有热修复的能力
节省踩坑和开发成本
hookandcreateGradleTask
Kotlin+groovy
热修复
非对称加密+对称加密
扩展美团Robust开源库,使其具有其他热更库不具备的补丁回滚功能
数据和监控思维
SDKHotfix(SDK热修复工具包)是一款让SDK开发者能快速赋予SDK热修复的能力.
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.**
实时生效
修复成功率高达99.9%
在用户规模千万级别的app中验证过,可信赖
支持补丁异常自动失效,不用再担心补丁造成crash啦~
在编译阶段插件侵入了产品代码,对运行效率、方法数、包体积还是产生了一些副作用。(可指定某些class无需插入方法,减少插桩数)
so和资源的替换目前暂未实现
对于只有字段访问的函数无法直接修复,可通过调用处间接修复
上传GradleTask尚未在MAC环境下测试
上传的补丁支持按包名存档
要商用的小伙伴要注意,建议换成自己的后端接口或自己续费一个bmob应用,因为bmob云函数服务超过40天需要收费,所以本项目需要定期更新应用秘钥。
展开内容
伐木工(Лесоруб)0.1 安卓版
王者荣耀土耳其服下载安装-王者荣耀土耳其全球国际服(honor of kings)10.4.1.8 安卓版
天姬变之南柯幻界红包版0.29.10最新版
明良海外置业app1.0.9 安卓手机版
顶通漫画免费阅读软件下载-顶通漫画免费最新版本5.2.44
乒乓弹射2.1 安卓版
地铁跑酷深海定制版本下载-地铁跑酷深海定制版本(subway QAQ)v3.9.0 魔改版
山海创世录风云变幻下载-山海创世录风云变幻1.10 福利版
网站查询工具-急速站长助手v1.0 绿色免费版
自动异议软件手机版下载-自动异议模拟器手机版2.3 最新版
了不起的飞剑处妖传最新版下载-了不起的飞剑处妖传最新版1.3.528安卓版
拦住小猪游戏下载-拦住小猪安卓版1.13.2.6 最新版
CJ淘宝刷心助手下载-CJ淘宝刷心助手4.0 破解版
绝处逢生3.2.2无cd下载-绝处逢生3.2.2破解版【全礼包破解+P闪无CD+自选神装】
刀刀屠龙手游官网下载-刀刀屠龙官网版(官方唯一指定下载地址)1.1 安卓官方版
7.7/537.9M
v10抽多多是一款可以免费抽皮肤的软件工具,这里囊括了各种有用的皮肤资源,奖励非常丰富,比如王者荣耀、英雄联盟手游、和平精英的等,有需要的小伙伴快来东坡下载吧~...
8.4/323.3M
炫酷充电,个性展现。这个APP可以帮助你管理自己的手机电铃,为你节省手机电池的使用量,还有就是在充电的时候这个APP会有显示以及提醒,每一次充电打开这个APP的...
10.0/1,908.8M
这是一款二次元风格的动作冒险游戏,枫之战纪手游拥有精美的画风,丰富的玩法,玩家能自由选择角色进行体验,每个角色的技能都有所不同,组成最强小队来进行战斗吧!枫之战...
星火运行游戏下载-星火运行(Spark Run)1.15 安卓版
9.5/1,726.0M
这是一个极具挑战性的休闲类型游戏,星火运行的玩法比较简单,但是这个游戏十分考验玩家的耐心,眼力,和反应力等等,在两个星球的交接点点击屏幕即可到达下一个行星!游戏...
两点之间下载-两点之间(TwoDots)8.48.0 最新版
9.2/1,883.1M
两点之间(TwoDots)是一款非常耐玩的休闲游戏,本作品作为《点点连线》的续作,游戏画风依旧沿袭前作的插图式风格,清新且精致,而且新增加了很多闯关挑战玩法,并...
8.8/456.7M
这款软件是一款非常好用的阅读app,包含了众多的书籍可以查看,而且你登录之后还可以把你的书籍储存在云端,让看书更加的方便!悠阅书城特点1、一款不仅能看书,还能交...
网页模板下载-方配网站模板克隆器(FPWebClone)v1.0 官方免费版
8.9/1,899.3M
方配网站模板克隆器(FPWebClone)是一款免费的网站模板仿制与克隆工具,可实现整站模板下载的软件。软件可以下载单页面,JS文件,CSS文件,网页图片,以及...
战场幸存者大逃杀单机下载-战场幸存者大逃杀(Unit)1.0.11 手机版
7.6/1,225.4M
战场幸存者大逃杀是一款好玩的冒险单机手游,逼真的射击生存玩法,不断的刺激你的肾上激素,在游戏中你需要一边逃跑,一边干掉那些追着你的怪物,感兴趣的小伙伴快来东坡下...
8.9/1,996.8M
全景未来校app是一款教育培训类的学习平台,有很多的优秀教育机构,打造全景式的英语学习方式,针对性的去提升孩子的成绩。全景未来校亮点1、利用了vr技术,让学生戴...
10.0/609.9M
极品学姐是一款二次元萌娘战斗手游。游戏有着精美的画风,丰富的游戏内容。玩家可以选择喜欢的萌妹子进行冒险战斗。多样化的游戏玩法模式,还可以组队刷副本哦,喜欢就加入...
7.5/457.3M
无人生还联机版是一款很好玩的塔防对战策略手游。游戏有着丰富的玩法内容,玩家需要依靠自己的思维来解决大量的僵尸。抵御僵尸的入侵,多种游戏模式,获取资源建立自己的发...
8.4/1,776.2M
板栗日记手机版app是一款便捷的优惠选购软件,在上面用户可以挑选男装女装,母婴童装,美妆护肤,内衣配饰,家居家装,家用电器等类型商品,领取优惠券更加实惠。怎么零...
9.5/1,297.9M
慧荣SM3268AA量产工具是一款非常好用的u盘量产工具,自动修复,非常专业的功能,给大家提供的是最新的免费版本下载,需要的用户快来下载使用吧!非常好用的u盘工...
9.7/1,151.1M
365夜童话故事app是一款可以听的有声童话故事应用,可以让孩子在动态的欣赏中,理解童话故事,更加了解快乐和悲伤的心情.感受到艺术之美,并启发其联想创造。功能介...
7.5/1,403.8M
叙梦naroAPP是一款主打高自由度AI聊天互动的社交类应用,核心定位为“个性化AI角色对话与叙事创作平台”。APP以丰富的AI角色库、灵活的模型配置和沉浸式对...
8.3/1,801.0M
很多的手机上面都是需要进行各种各样的cup频率设置或者是需要对这个进行了解的,那么现在就可以试试下面的这款MTKMode中文版来试试吧!cpu频率设置改变工具M...
8.2/1,024.9M
《一键租号》是一个安全放心的手游、端游、吃鸡类游戏,游戏账号租号平台,为广大游戏爱好者提供优质游戏和影视的租号服务。让每一个游戏玩家安全放心的体验优质账号带来的...
8.6/1,420.2M
今天小编给那些喜欢在平板上看新闻和视频的朋友推荐一款不错的新闻视频软件--凤凰视频HD!相信大家都已经听说过了吧,那就来体验下吧!凤凰视频HD介绍凤凰网专业新闻...
9.1/1,683.8M
专为麻花影视打造的一款去广告神器,麻花助手是一个Xposed插件,可以很简单的去掉麻花上面的各种广告,完全免费使用,软件内还设置了很详细的教程,下面小编也贴出来...
7.8/1,969.0M
如果你是一个律师,那么你的福利来了!小编呢,今天就来帮你接更多的单。不过小编并不是去帮你跑业务,而是帮你找到一款非常实用的手机软件——人人追律师版。人人追律师版...
黑暗中的阴影游戏下载-黑暗中的阴影(The Shadows In the dark)1.010 安卓版
9.8/1,040.8M
黑暗中的阴影是一款冒险逃生手游,在游戏中玩家被困于一座黑暗的别墅,玩家需要找到隐藏在黑暗中的秘密,并且躲避怪物的袭击,玩法非常刺激,感兴趣的小伙伴快来uzzf东...
天若幽心迷你定时器官方下载-天若幽心迷你定时器1.0 绿色免费版
8.5/266.6M
天若幽心迷你定时器是一款非常好用的电脑关机定时工具,有了它,用户可以轻松设置定时开关机,还可以重启、注销、休眠等。有这方面需要的朋友不要错过了,快来下载使用吧!...
9.1/1,038.1M
e成长app,全面为你的孩子带来安全服务,依托阿里云盾,孩子的安全和个人信息得到进一步加强;还有多种优质教育机构推荐,培养孩子的课外活动。e成长APP下载特点治...
8.0/198.0M
城市山泉是由深圳酷享信息科技有限公司开发的一款简单、便捷、易操作的送水软件。城市山泉平台旨在为每一个家庭、公司或单位享受到更高质量的订水服务。城市山泉app特点...
8.0/556.6M
QQ团购是腾讯公司推出的一款手机团购软件,QQ团购每日为您提供上百款精品团购,让您享受随时随地团购的乐趣!需要网上购物的网友可以下载一个哦!QQ团购功能介绍1、...