5分钟即可让你的SDK拥有热修复的能力
节省踩坑和开发成本
hookandcreateGradleTask
Kotlin+groovy
热修复
非对称加密+对称加密
扩展美团Robust开源库,使其具有其他热更库不具备的补丁回滚功能
数据和监控思维
无兼容问题
实时生效
修复成功率高达99.9%
在用户规模千万级别的app中验证过,可信赖
支持补丁异常自动失效,不用再担心补丁造成crash啦~
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.**
在编译阶段插件侵入了产品代码,对运行效率、方法数、包体积还是产生了一些副作用。(可指定某些class无需插入方法,减少插桩数)
so和资源的替换目前暂未实现
对于只有字段访问的函数无法直接修复,可通过调用处间接修复
上传GradleTask尚未在MAC环境下测试
上传的补丁支持按包名存档
要商用的小伙伴要注意,建议换成自己的后端接口或自己续费一个bmob应用,因为bmob云函数服务超过40天需要收费,所以本项目需要定期更新应用秘钥。
展开内容
9.5/796.2M
牧神记是一款根据小说改编的手机游戏,这款游戏中高度还原了小说中的人物与剧情,并且这款游戏中还有超多的福利等着你来领取。游戏介绍牧神记手游是一款好玩的玄幻题材角色...
8.8/374.3M
我们又迎来了一年一度的新年,所有老师又要求我们写一篇别了2017,来吧2018的作文,为了解决很多不会写的难题我特意为大家提供了一篇范文仅供参考!作文怎么写比较...
9.7/196.5M
注册税务师CTA是一个专业的税务师备课复习软件,拥有丰富的学习资源,还有超多模拟真题,帮助你通过考试!软件介绍2019年度深受计划备考税务师职业资格考试用户欢迎...
9.6/1,700.1M
小镇暗斗4.4.7正式版是最近特别火的一款魔兽角色地图,小编给大家提供的是最新版本下载,更新了很多内容,附攻略,玩法更加多样化,感兴趣的快来下载吧!小镇暗斗4....
7.7/1,173.6M
OP启动器官方正版是专门为安卓手机用户设计的模仿苹果桌面的软件,这个软件不仅在最大程度上还原了苹果桌面的风格,而且也还原了苹果桌面的操作体验,支持自定义风格的同...
8.8/166.9M
在淘金狂热游戏游戏中化身淘金者去挖掘沙子和泥土,寻找金子和宝藏,借助于各种工具不断地挖挖挖,不断开采,获得更多的宝藏成为淘金大师。淘金狂热游戏介绍淘金狂热游戏是...
8.1/1,499.2M
混沌挂机是一款非常好玩的冒险类手机游戏,游戏中主要的是以剧情为主,有着超多炫酷的武器可以自由的使用,为你带来多种不同的精彩玩法挑战,最良心的放置手游,让你能随时...
9.7/476.5M
六度云办公是一款企业通信录办公应用。这款软件可以解决移动互联网时代在微信上办公不方便的问题,还有各种强大的办公功能,大大的提高了用户的工作效率!六度云办公app...
8.7/383.9M
这是一款简单的休闲小游戏,采用模拟驾驶玩法,驾驶你的汽车行驶在公路上,路上到处都是车,你需要控制汽车,躲避碰撞,你越过的汽车越多,获得的游戏分数越高。卡通车驾驶...
8.1/28.8M
星火金融app是一个专为大学生提供服务的平台,为您精挑细选出最优质的创业项目,让想要创业的朋友找到自己实现梦想的路,欢迎来下载使用!星火金融打造最值得信赖的价值...
9.6/359.6M
与上个星期超级火的抓精灵游戏相似的一款手游——行界零,这款游戏是户外玩的地理位置解谜类型,需要开gps,而且游戏是由国内大学生团队打造,东坡这里为玩家带来行界零...
7.8/1,172.9M
成语梦想家是一款方便日常的成语学习软件,海量的学习内容,丰富的成语学习资源。还有超级丰富成语答题系统,用户可以通过答题来积累更多的成语知识,检测自己的知识水平。...
7.6/630.7M
如是人才官网app,是专为职场准备的大型求职工具,最新的职场资讯,还有不错的职场教育培训,喜欢的快来下载试试吧!如是人才官网app功能介绍如是人才APP是为用户...
9.0/680.5M
microsoftvisio2007破解版是一款能让所有人都可以在MicrosoftInternetExplorer5.0版或更高版本的Web浏览器中查看使用V...
8.1/275.7M
小漫艺术照片是一款滤镜很多的手机拍照工具,丰富的滤镜,智能的剪辑功能,一键拍出各种精美艺术照,拥有漫画艺术照片效果,可以帮助你快速生成漫画形象!小漫艺术照片ap...
8.9/455.9M
宝马X1使用说明书是由宝马汽车官网提供的宝马X1使用手册电子版,该电子说明书为PDF版本,可以帮助宝马X1车主快速掌握宝马X1的各种功能及性能参数,包含了汽车概...
8.6/409.8M
想要你的照片独一无二?Piclay相机app能为你提供各种丰富多彩的滤镜,它的复古风格非常好看,拥有浓郁的艺术气息,还有其他的模板可供选择,简单的编辑,让照片更...
8.0/810.7M
春节快到了,很多人都开着小车回去了,显得很有面子,没有车的朋友可以来小二租车回家,拥有高中低档车辆近千辆,车型丰富,车况崭新,预约春节用车还有优惠好礼相送。租车...
8.5/1,921.0M
火柴人联盟2是一款正版火柴人的续作,在1的基础上新增了跳跃,空中连击,战斗自由度更高,更帅的动作设计,更好的操作手感。相对前作来说更加好玩了,快来下载吧。火柴人...
8.2/606.9M
我的宇宙是一款科幻题材的模拟经营手游。游戏画风很棒,玩家将在游戏中建立属于自己的星系,利用一切资源,发展它。你的最终目的就是成为宇宙的主宰,还有丰富的游戏内容哦...
9.0/42.1M
旅人软件是一款非常好用的在线旅游资讯软件,可以让你在想旅游的时候快速的找到自己需要的信息,让你可以轻松的旅游,需要的下载吧。旅人软件说明:旅人软件是旅人在线为广...
8.5/1,035.6M
很多人喜欢玩魔方,玩魔方不仅仅可以锻炼自己的大脑,还可以提高空间想象力以及动手能力,但是对于魔方限售来说,遇到魔方无法正常解开的时候没有人可以求助怎么办?打开手...
8.5/1,165.0M
彩虹物语(科技刷现金点)bt版是一款高自由度的横版格斗手游,玩家将置身于泰尔大陆,开启全新的冒险之旅。游戏拥有专属的捏脸容貌,欢快的篝火晚会,开放的战斗场景;十...
8.6/179.8M
简易文件合并器(视频剪切合并器)是一个简单的合并文件的软件,如果你下载部分被切割的大型软件,你可以用这个软件将它们合并到一起。此外它还可以合并ASCII文本文件...
9.3/291.7M
湘潭市党员干部教育培训登录平台是一个专门为湘潭市而开发的党员在线学习教育软件,通过这个软件你可以随时随地的了解最新的党员知识,还可以在线的进行考试!让学习更加轻...