无兼容问题
实时生效
修复成功率高达99.9%
在用户规模千万级别的app中验证过,可信赖
支持补丁异常自动失效,不用再担心补丁造成crash啦~
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.**
在编译阶段插件侵入了产品代码,对运行效率、方法数、包体积还是产生了一些副作用。(可指定某些class无需插入方法,减少插桩数)
so和资源的替换目前暂未实现
对于只有字段访问的函数无法直接修复,可通过调用处间接修复
上传GradleTask尚未在MAC环境下测试
上传的补丁支持按包名存档
要商用的小伙伴要注意,建议换成自己的后端接口或自己续费一个bmob应用,因为bmob云函数服务超过40天需要收费,所以本项目需要定期更新应用秘钥。
5分钟即可让你的SDK拥有热修复的能力蜜月聊天挣钱嘛
节省踩坑和开发成本
hookandcreateGradleTask
Kotlin+groovy
热修复
非对称加密+对称加密
扩展美团Robust开源库,使其具有其他热更库不具备的补丁回滚功能
数据和监控思维
SDKHotfix(SDK热修复工具包)是一款让SDK开发者能快速赋予SDK热修复的能力.
展开内容
8.2/1,037.1M
《汤姆·索亚历险记》这篇课文是由《汤姆·索亚历险记》这部名著的梗概和“找到汤姆和贝琪”这个精彩片断组成。梗概围绕“历险”,写了汤姆的五次历险。 选编本文的目的,...
8.9/1,104.3M
滕州行app是专为滕州出行带来便利的一款应用软件,支持在线快速查公交、线路,支持手动输入和语音输入,还有换乘站点等查询,功能很全面,是市民出行最便捷的工具。功能...
8.7/549.2M
gmhz6cn工具箱是一个非常给力的游戏辅助工具,拥有多种辅助功能,可以很轻松的来进行提升游戏帧率,并且可以很轻松的来进行游戏瞄准。游戏分辨率可以一键来进行提升...
8.0/1,456.1M
赛博朋克2077闪退修复补丁是专门为赛博朋克2077玩家提供的修复补丁。现在很多小伙伴在玩这款游戏的时候都会遇到闪退崩溃的情况,不知道怎么办。你可以来这里下载赛...
8.8/1,012.3M
易用屏幕捕捉,是一个从屏幕显示上撷取全部或者部分区域作为图像或者文字的过程。软件小巧,但功能强大,能随时连续抓拍屏幕图像,操作简单,有需要的亲快拿走吧!软件功能...
10.0/342.4M
“元艺购”是公司上海技术团队独立开发的艺术品等资产数字化存证、收藏、分享、交流平台,旨在为广大独立创作者、收藏者提供一站式生态服务体验,是国内首个社区化的数字藏...
7.5/1,292.6M
没有更多的按钮手游是一款非常不错的手机休闲闯关游戏,在这里有非常不错的像素风格画面,并且还有强大的游戏玩法,非常不错。手机休闲游戏游戏介绍没有更多的按钮游戏是一...
7.7/434.3M
腕上教材手表版官方app是一款手表学习应用,用户可以在手表上安装此软件,随时随地都可以开始学习,包含的学科也非常多,甚至还有必修和选修之分,不管是小学生,还是初...
8.7/1,931.3M
迷宫生存手游是一款非常好玩的迷宫生存类型游戏,可玩性比较高的一个手游,第一人称玩法,该版本已经破解,赠送无限金币,你可以购买食材和武器!迷宫生存手游介绍迷宫生存...
8.5/704.7M
动漫英雄之城1.05正式版是一款角色剧情类型地图,非常多的英雄可以选择,剧情内容十分丰富,新版本新增了很多玩法,地图更加多样化,修复了一些bug!动漫英雄之城1...
7.9/737.3M
《星光花园(StarryGarden)》一款非常治愈型的趣味游戏,玩家在美丽的音乐下来自由的欣赏夜空中最闪亮的星,在忙碌的生活中轻松享受游戏所带来的开心,清晰治...
8.5/1,882.3M
克苏鲁神话异闻录系列1与天波岛的歌姬是一款极具日式风格的冒险类的游戏,这款游戏的故事背景是根据经典的日本神话故事改编而来的,剧情向游戏,玩家需要跟随着游戏剧情来...
查看
7.5/328.3M
遂心时间校对器对于那些Bios电池没电,或对时间的精确度要求比较高的用户可以通过该软件进行时间的校准,有需要的赶紧来下载使用吧。目前只针对北京时间,且校准时必须...
8.5/842.6M
最后净土游戏以丧尸为题材的角色扮演类动作手游,采用了极其精美的高清游戏画面,丰富的剧情内容,各种不同的角色等你来解锁,还有超多的副本任务等你来战,完成各种任务还...
7.6/1,517.5M
集合本地商家的一款食物购买平台,我点吃吃app以吃为主,这里有成品菜单,手工制作,火锅串串,名厨名菜,宴席菜等内容,专为开长市的朋友打造,喜欢吃的一定要试试。功...
9.7/603.8M
G沙盒:仇恨厂商全新作品。盒子男孩是通过跑酷的方式通过空中走廊,你能到达终点吗?在游戏中玩家可以控制盒子男孩还是冒险,在游戏中建设许多的建筑,自由的在沙盒世界中...
7.5/1,527.7M
玩起来很有魔心的餐厅经营游戏,我的饭店红包版,给饭店进行装修,打造专属你的我的饭店,准备各种美食去招待顾客,让生意红红火火。我的饭店游戏亮点画面清新,各种食材真...
7.9/175.2M
房屋装修计算器,专业对房屋装修中常用的材料数量进行计算,包括墙砖、地砖、地板、壁纸、涂料、窗帘数量计算。根据数量即可得知预算,房屋装修必备哟!房屋装修计算器使用...
8.1/1,364.6M
腾讯地图7.0版本正式上架,软萌妲己为你导航,王者荣耀官方授权的妲己语音导航来了!广大车友的福利,喜欢王者荣耀的车主朋友快来下载使用吧!腾讯地图7.0版导航妲己...
8.2/358.2M
神秘地牢游戏是一款像素风格的地牢冒险游戏,你可以选择不同的职业,去探索地下城,打败敌人可以得到武器,资源和宠物,还有各种各样的宝藏等你来挑战,画风很可爱。特色特...
8.2/1,474.7M
一格学科英语是一款为儿童青少年所量身定做的英语学习平台,这里有丰富专业的英语学习课程,通俗易懂,激发孩子对英语学习兴趣,非常有用,有需要的朋友们快来下载体验吧!...
7.9/1,674.9M
谁都希望自己的手机桌面有个性一点。苹果iphone主题桌面这款手机桌面主题还不错,高仿苹果手机界面。感兴趣的网友们可以了解一下。接下来,小编给大家介绍一下这款苹...
9.8/753.8M
光伏是太阳能光伏发电系统的简称,既可以用作民用也可以用作商业用途,金风光伏云软件主要是用来管理平台软件结合各种设备运维的应用场景。金风光伏云app介绍设备远程运...
8.4/1,154.8M
胡莱三国2手游正式版是一款三国题材的沙盘策略游戏,完美还原了三国故事背景,历史经典战役即将出现,玩家在这里可以建立自己的势力,招兵买马,打败其他势力就能成为一方...