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天需要收费,所以本项目需要定期更新应用秘钥。
SDKHotfix(SDK热修复工具包)是一款让SDK开发者能快速赋予SDK热修复的能力.
无兼容问题
实时生效
修复成功率高达99.9%
在用户规模千万级别的app中验证过,可信赖
支持补丁异常自动失效,不用再担心补丁造成crash啦~
5分钟即可让你的SDK拥有热修复的能力
节省踩坑和开发成本
hookandcreateGradleTask
Kotlin+groovy
热修复
非对称加密+对称加密
扩展美团Robust开源库,使其具有其他热更库不具备的补丁回滚功能
数据和监控思维
展开内容
8.6/637.3M
DiskTest3.2硬盘测试工具中文绿色版,体积非常小,非常实用,一支少年球队坐飞机去外国比赛,在飞行中,为打发无聊,队员们竟在机舱里踢起球来。机长忽然觉得飞...
9.9/1,889.3M
像素风格游戏滑动魔法师官方版全网独家上线,开启员工,提高施法者能力然后来打败更多的怪兽吧,成为世界上最好的施法者!你绝对值得一玩。滑动魔法师官方版特色用单手指施...
7.9/1,622.5M
《一个小村庄的故事》讲的是由于人们乱砍滥伐,原本靠锋利的斧头建造的美丽家园,终究毁在了锋利的斧头之下,最后受到了大自然严厉的惩罚——整个小村庄都被咆哮的洪水卷走...
8.9/963.4M
长江船运网app是一款船运服务软件,提供了最新的船运服务信息,运用互联网平台,为货主和船物运输员搭建的沟通交流的平台,找船找货的最佳选择。功能介绍网站开设的主要...
8.6/326.5M
羊村便利宝配送手机版是专为广大的外卖骑手打造的配送接单服务平台,一键智能为骑手领取订单,大幅提升你的收益来源,由平台为你做出保障,让你的外卖配送变得更加方便快捷...
9.7/538.4M
战姬学院是一款以校园为题材的超萌二次元卡牌回合制手游。游戏有着精美的人物立绘,海量的萌妹子任你选择,百位萌娘御姐秒杀次元。你可以选择喜欢的小学妹进行战斗。趣味养...
7.5/732.7M
武侠大宗师满V版,是一款策略武侠手游,游戏中玩法有趣,画面精美,游戏在传统的卡牌游戏基础之上加入了“情缘系统”等玩法,可以体验的新的卡牌带来的乐趣!武侠大宗师游...
8.5/1,479.5M
宝宝爱学数学app是一款非常有趣的手机线上宝宝数学启蒙学习软件,用户下载这款软件能够帮助宝宝进行数学的启蒙学习,父母的疏导加上软件的教学,能够让宝宝非常简单的进...
9.9/970.5M
这是一款在线才艺养成工社软件,艺秒TV版,照亮梦想的舞台,有视频动态、图文动态、还可进行课程/内容分开播。艺秒TV版简介你想学?海量舞蹈短视频任你看,各类精品网...
查看
10.0/1,717.7M
我的世界方块狼人杀,最新热门有趣的游戏mod,玩家进入我的世界狼人杀服务器即可与网友一同游戏,以热门的狼人杀为题材,玩家可直接在游戏体验全新模式。喜欢的玩家快来...
7.5/369.3M
都看大字版,通过大字设计,缓解用户手机使用时的眼部疲劳,是一款内容通过大字体进行展示的休闲软件,可以抠图、看天气、看笑话,功能多样,满足用户多方面的需求,赶快下...
7.9/945.6M
湖州公共自行车app专为需要租借湖州地区的公共自行车的朋友设计的app,功能强大,可以快速搜索公共自行车服务网点,欢迎来下载使用!公共自行车,是“公共自行车出行...
9.5/1,966.1M
轩辕传说又更新最新版本了,这款地图很多朋友都喜欢玩。这里带来了轩辕传说2.7正式版,附有地图攻略和隐藏英雄密码。感兴趣的朋友不要错过了,快来下载体验吧!地图介绍...
7.5/1,685.1M
魔之符咒圣诞版8.57是魔之符咒的圣诞版本,很多老玩家都在关注这张地图,圣诞版本有很多礼包福利可以领取,修改了一些内容,玩法更加好玩,修复了很多bug!魔之符咒...
10.0/1,542.0M
这款软件是一款计事软件,可以通过这个app快速的记录各种事情,以经典的电影故事上千的影迷让大家了解更多的故事!快速找到自己喜欢的东西!电影记事app介绍电影记事...
7.7/1,860.5M
要将很大的Excel文件,里边的数据几十万条,如何将它拆分为多个小的文件?拆分时每个文件的记录条数可以自己选择控制,小马奔腾Excel文件合并助手可以帮助你。小...
8.1/359.9M
anyvideoconverter是一个界面操作简单,全能的转换器高速转换,无损视频品质,允许在几个视频格式中相互转换可以转换包括divx,xvid,mov,r...
7.5/1,543.4M
女神保卫战(0.1折女神学院)bt版全场充值0.1折,原汁原味的异界女神学院!这款游戏集合了时尚潮流Q版、武侠江湖主题、策略和卡牌等多种元素。在游戏中,玩家可以...
9.3/786.8M
锦迅(智能化汽车维修软件),专为智能化汽车服务设计的应用,各种高端领先的汽车行业服务,让你感受到科技带来的未来的畅想!锦迅(智能化汽车维修软件)功能介绍在智能移...
9.3/785.6M
蜀山传奇2满V版是一款传奇角色游戏,在传奇的世界里玩家将会找回属于你自己的荣耀,多种酷炫的副本,简单的操作,激情的pk让你的青春找回记忆,和兄弟一起来畅爽体验吧...
7.9/1,371.1M
抚顺行app是抚顺地区的实时公交查询软件,通过手机app就可以在手机上随时查询公交车的实时行车、到站等信息。方便市民出行!抚顺行app功能1、新闻概览2、查看所...
8.5/122.7M
我叫MT英雄杀是一款回合制策略卡牌手游,这款游戏是由我叫MT动漫改编的。经典角色在游戏中悉数登场,众多人气角色高度还原,喜欢这款游戏的朋友就来东坡下载吧。东坡手...
8.6/1,244.9M
这款游戏是以坦克大战为玩法的游戏,在游戏之中你可以操作着你的坦克与其他玩家对战,游戏操作是非常简单的,玩起来十分的需要技巧,在线玩游戏更加有趣哦。战龟2手游特点...
8.2/1,391.6M
一米邻居是一款通过网络认识街坊领居的社区软件,拥有这款软件你就再也不用担心街坊领居都是陌生人了,所谓远亲不如近邻,快来和你的邻居做朋友吧。通过网络和邻居做朋友一...