在编译阶段插件侵入了产品代码,对运行效率、方法数、包体积还是产生了一些副作用。(可指定某些class无需插入方法,减少插桩数)
so和资源的替换目前暂未实现
对于只有字段访问的函数无法直接修复,可通过调用处间接修复
上传GradleTask尚未在MAC环境下测试
上传的补丁支持按包名存档
要商用的小伙伴要注意,建议换成自己的后端接口或自己续费一个bmob应用,因为bmob云函数服务超过40天需要收费,所以本项目需要定期更新应用秘钥。
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.**
5分钟即可让你的SDK拥有热修复的能力
节省踩坑和开发成本
hookandcreateGradleTask
Kotlin+groovy
热修复
非对称加密+对称加密
扩展美团Robust开源库,使其具有其他热更库不具备的补丁回滚功能
数据和监控思维
SDKHotfix(SDK热修复工具包)是一款让SDK开发者能快速赋予SDK热修复的能力.
无兼容问题RightMenuMgr中文版下载-RightMenuMgr(右键菜单管理工具)1.2.1中文免费版
实时生效
修复成功率高达99.9%
在用户规模千万级别的app中验证过,可信赖
支持补丁异常自动失效,不用再担心补丁造成crash啦~
展开内容
Article填词软件下载-Article填词工具6.6 绿色版
练字书法大师软件手机下载-练字书法大师app1.4 安卓版
糖果学院游戏安卓版下载-糖果学院游戏1.0最新版
玩偶模拟器手机版下载中文-玩偶模拟器1 正版
MP3标签批量修改器(Mp3 Tag Tools)1.2 绿色免费版
战神霸业变态版下载-战神霸业bt版1.0 安卓版
魔鬼相机app下载-魔鬼相机app1.0 安卓版
快秀录屏官网app下载-快秀录屏(手机专用录像软件)1.0.5专业免费版
平房房屋租赁合同电子版-平房房屋租赁合同范本doc简单版
俄罗斯方块我的世界版最新版下载-TetrisM俄罗斯方块我的世界单机版0.233 马克杯MarkCup自制
君凤煌app安装下载最新版-君凤煌安卓版3.6.2 正版
聚光塔软件下载-聚光塔APP1.16.15 安卓版
文件备份软件宝备2017免费下载-文件备份软件宝备20171.1 免费版
抖抖果园红包下载-抖抖果园1.1 最新版
多多TV2.0下载-多多TV电视盒子v2.0 安卓版
集盒大学app下载-集盒大学app1.4.4 最新版
勇者在求职中游戏下载-勇者在求职中(Job Hunt Heroes)5.9.0 安卓版
听见(语言转文字)APP下载-听见(语言转文字)APP官方版1.0.1 最新版
乐闪图纸尺寸统计助手1.0.1免费版
FM有声调频收音机下载-FM有声收音机3.2.0104 安卓手机版
名将之弈下载-名将之弈官方版3.0.0 最新版
极限滑板3手机版下载中文版-极限滑板3手机版(Skate Party 3)1.6.3.RC-GP-Lite(40) 安卓版
flv转mp3转换器中文版-FLV转MP3大师2.9 官方最新版
封龙战纪果盘版下载-封龙战纪果盘客户端1.0 安卓官方版
橙子待办app下载安装-橙子待办1.3 手机版
Mini Key Log下载-Mini Key Log(键盘记录)V6.16.0.0 绿色版
9.5/1,372.1M
MiniKeyLog(键盘记录)是一款记录计算机上用户键盘操作记录软件,该软件界面简介,使用方便,操作简单易上手。快捷截图,轻松记录访问网站。MiniKeyLo...
10.0/822.3M
该作具备像素式的游戏画面,具备类银河战士恶魔城风格,玩家们将会在众多炫酷的场景下进行冒险,并且利用出色的能力来完成诸多挑战,丰富有趣的游戏过程绝对不会让大家失望...
人大云课堂app下载-人大云课堂app1.0.0 安卓学习版
9.4/1,407.6M
全国人大机关干部网络学院,为大家分享了丰富的学习课程,详细的课程分类,人大云课堂app会记录学习的进度,随时利用空余时间学习。官方介绍人大云课堂APP主要为学习...
8.5/249.4M
《你是特别的,你是最好的》故事是给小孩讲的故事,每个孩子的小心眼里都会有这样那样的比较,觉得自己跟别人不一样,于是不开心,父母要鼓励孩子找自信,相信自己是最好的...
表情工坊-表情工坊(gif表情制作软件)1.3.79 绿色免费版
7.7/891.7M
表情工坊是一款表情制作软件,支持所有图片格式,支持gif动态表情制作,快来下载制作个性表情和朋友们斗图吧。表情工坊(gif表情制作软件)功能介绍用于制作表情制作...
9.4/964.3M
乘方教务系统app是一款智能校园服务软件,使用学号和密码进行登录,在线选课、查询课程表、考试安排、查看成绩等多项服务功能,能够帮助高效在线进行教务教学管理,使用...
9.8/1,550.0M
这是一款日系画风的美少女战国类游戏,战舞姬M手游加入了不同的游戏系统,你需要召集不同的美少女,每个角色都有自己的技能,组成最强小组与敌人进行战斗。战舞姬M手游游...
速记GRE单词软件下载-速记GRE单词app1.0.3 最新手机版
8.1/743.5M
GRE不仅有对英文的基础应用进行考量,最主要的是GRE还对本科所学专业知识进行考量,这里分享是速记GRE单词app,采用艾宾浩斯记忆法,能够智能记录你的学习习惯...
9.2/943.0M
这是一个本地新闻阅读软件,通过这个app你可以了解本的时政新闻,了解各种头条资讯,提供一些民事服务功能等等,非常方便的一个平台,服务百姓!软件介绍富川融媒,是富...
E道车管家app下载-E道车管家app手机版1.2.4 安卓最新版
8.2/1,933.6M
E道车管家app是一款非常好用的车载定位的软件,软件能够帮助用户一键导航到车的位置,实时监控自己的车的各种情况等,大大的方便了你的各种防护措施。一款监测车辆的软...
8.0/160.2M
飘云硬件温度检测大师是专业的硬件建设工具,能够让你清楚的了解到自己的电脑配置及其情况,能够24小时全时段的监控电脑,让你的电脑时刻保持最优的性能,最适宜的温度,...
9.7/440.4M
浩方对战平台有些频道人满了之后,非常难挤进去,小编在这给您介绍一款浩方挤线器,可以帮助你快捷的挤进频道,节省时间,摆脱手动挤线的操作,非常方便快捷。使用说明:1...
9.2/161.8M
国战无双是首款将西方蒸汽机甲与东方美学文化相结合的手机游戏,这款游戏将带你去见证一个宏大的机甲世界,喜欢这款游戏的朋友就来东坡下载吧。相信这款游戏不会让你失望的...
7.9/394.2M
奇酷魔球app是一款手机专用的悬浮球,这个悬浮球属于快捷悬浮球,可以让你的手机模拟出苹果手机的悬浮快捷球,包含了很多功能!并且可以自己设置快捷方式!奇酷魔球ap...
Ketchapp理发店游戏下载-开趣宝理发店手游(Barbers Shop)1.0.21 安卓最新版
7.8/1,041.0M
开趣宝官方打造的趣味理发店游戏安卓版上线了,开趣宝理发店手游(BarbersShop)中玩家将成为这个理发师,去收集各种vip客人,成为这个城市中最厉害的理发师...
7.5/29.2M
甘肃省西北部非常有名天下第一雄关嘉峪关是你旅游选择的不错地方,它与兰州、青海隔的不算远是国庆出游的最佳场所,东坡这里附上嘉峪关语音导游app,智能语音导游,给你...
文件粉碎机哪个好-旋风文件粉碎机1.0 绿色最新版 【2015增强版】
7.9/308.2M
其实大家肯定有遇到过不能够直接进行删除的文件,这时就要借助于旋风文件粉碎机,它不但支持文件的批量载入,而且还具备一键快速粉碎文件的功能,让你的电脑更加的安全!旋...
9.3/1,742.8M
友药是一款手机社区健康助手应用,帮助患者提供养病健康知识咨询,提醒患者按时吃药,还能与同病相怜的病友一起交流经验,分享感受。友药评价友药是一款手机社区健康助手软...
Cemiuiler模块下载-Cemiuiler MIUI系统增强模块1.1.118_20230614 最新版
9.4/583.6M
CemiuilerMIUI系统增强模块是专为小米MIUI系统打造的一个应用插件,安装后打开,只需要简单的设置就可以让大家体验不一样的效果,这个模块支持多个miu...
消灭雾霾泡泡龙手机版-消灭雾霾泡泡龙1.0.1 安卓版【泡泡龙游戏】
7.8/256.1M
消灭雾霾泡泡龙安卓版是一款简单好玩的泡泡龙消除游戏,加入了好玩的BOSS挑战模式,消除雾霾,人人有责,快来一起消灭雾霾吧!消灭雾霾泡泡龙安卓版介绍史上最华丽,最...
采集江苏2下载-采集-江苏2app软件1.0.8.1 安卓版
8.1/1,025.7M
江苏核酸标本采集软件,方便进行大规模核酸检测工作,支持的类型非常广泛,支持强大的图像识别等功能,快速的进行核酸检测登记。采集-江苏2app软件使用方法1、选取一...
8.9/1,004.9M
睿学在线app是一款在线教育培训学习平台,在这里,拥有海量优质教学课程资源,为大家带来丰富多彩的教学和办公管理功能和服务。睿学在线课程随时观看,轻松提升自己的学...
9.5/78.1M
喜欢猫咪的小伙伴来啦!定制猫咪2游戏,你可以在游戏中,绘制出自己喜欢的猫咪的样子,小猫咪身上的颜色也可以由你来定。游戏简介献给没有猫的各位—— 是否想...
世纪守护app客户端-世纪守护app3.1.8 官方ios版
9.1/122.6M
世纪守护app是一款为孩子设计的学习生活软件,功能强大,拥有学校通知、考试成绩等功能,老师家长可以在线沟通,欢迎来下载使用!世纪守护app介绍“世纪守护”是利用...
画质怪兽120帧安卓版下载-画质怪兽120帧官方正版3.0.1 最新版
9.5/1,228.4M
画质怪兽120帧安卓最新版本,基本上就是吃鸡玩家人手一个,必备的画质修改软件。画质怪兽全新版本来袭,更炫酷的操作,更犀利的晚饭,解锁画质修改,提升画质体验。一起...