在编译阶段插件侵入了产品代码,对运行效率、方法数、包体积还是产生了一些副作用。(可指定某些class无需插入方法,减少插桩数)
so和资源的替换目前暂未实现
对于只有字段访问的函数无法直接修复,可通过调用处间接修复
上传GradleTask尚未在MAC环境下测试
上传的补丁支持按包名存档
要商用的小伙伴要注意,建议换成自己的后端接口或自己续费一个bmob应用,因为bmob云函数服务超过40天需要收费,所以本项目需要定期更新应用秘钥。
无兼容问题
实时生效
修复成功率高达99.9%
在用户规模千万级别的app中验证过,可信赖
支持补丁异常自动失效,不用再担心补丁造成crash啦~
5分钟即可让你的SDK拥有热修复的能力
节省踩坑和开发成本
hookandcreateGradleTask
Kotlin+groovy
热修复
非对称加密+对称加密
扩展美团Robust开源库,使其具有其他热更库不具备的补丁回滚功能
数据和监控思维
1.添加配置和开关全能密码钥匙下载-全能密码钥匙app1.3 官方版
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.**
SDKHotfix(SDK热修复工具包)是一款让SDK开发者能快速赋予SDK热修复的能力.
展开内容
8.4/1,875.3M
深圳市普贴科技有限公司专门针对国家电网打造的一款管理软件,电网标识app提供了丰富的模板,添加删除用户信息,连接打印机一起使用,方便进行打印。电网标识打印软件介...
9.8/994.7M
磁盘占用快速检索工具经常想知道为啥自己磁盘就这么莫名其妙的满了,天知道你自己塞了什么玩意儿进去就找不到了,又想快速查找,用它帮你解决掉关于磁盘占用的烦恼。磁盘占...
7.7/1,295.1M
精选各类好看的短视频平台,PT视频app有趣的内容都在这里,超级燃的创意,八卦明星,有才原创,脑洞超大,让你涨眼界,学更多的知识。功能介绍【好看的短视频】好看、...
9.2/1,490.3M
四角号码输入法app是一款安卓版的纯粹输入法软件,app具备多种快速的输入模式,上面收录了2万多个汉字以及30多万条词语,此软件为单机软件,没有任何广告,简洁的...
8.7/1,535.0M
舌尖旅行app作为一款出境游导航app,从天气、气候、心情和特色美食多方面入手,支持离线地图。东坡小编推荐,麻麻再也不怕我找不到吃的,迷路了,一路有它陪你!...
8.4/1,605.0M
JauntVRapp总的来说里面的资源还是非常的不错的,各种各样的短视频以及一些相关的电影或者是广告都是有的,不需要你去国外也可以看的东西,不过就是速度慢了点,...
9.7/770.6M
像素国王荣耀是以前非常火的一个游戏,现在他出了最新的像素国王荣耀重制版!对于这种像素画风,有的人喜欢,有的人觉得不好,但是有一点是肯定的,那就是游戏内可以操作很...
9.2/117.0M
《幼儿园教师备课管理系统》是一款适用于中小幼儿园的教师备课软件,采用创新理念设计,可以任意设计和查询幼儿园教学情况,打印报表。该软件操作步骤简单,清晰,实现了备...
8.5/1,162.9M
点杀泰坦2(TapTitans2)-点击游戏,闲置角色扮演手游。英雄和怪兽冒险游戏、taptap游戏、史诗战争、传奇泰坦、传说小小军团、培育英雄,与泰坦对战,点...
9.7/292.4M
新选是一款新型的手机购物软件,在这里有海量品质好物等你来选购,生活日用、美妆护理、手机数码等一应俱全;加入会员还有大量优惠活动可以参加,感兴趣的朋友们快来下载吧...
8.9/736.4M
欧比单板滑雪游戏为你带来一场指尖上的冰雪狂欢!在这款极具特色的冒险闯关手游中,你将化身滑雪高手,驾驭单板驰骋在险象环生的赛道上,开启热血沸腾的滑雪之旅。快来下载...
8.3/1,049.2M
蜗牛运动app是一款倡导健康运动的软件,这里有超全面的运动健身课程,可以为用户提供运动记录功能,每天为用户记录运动数据,根据自身情况设置运动目标,清楚记录运动数...
7.6/1,302.4M
中勤网校是一款学习教育软件,这里拥有海量题库和课程,专门帮助大家提升自己的职业技能,任何学习需求都可以在这里得到满足,如果你现在迫切需要提升自己,或者想培养自己...
9.0/804.3M
巨兽Gigantic汉化版是一款非常好玩的射击类游戏,给大家提供的是最新的steam免费汉化版本,直接用steam账号登录注册即可,相信很多玩家都非常期待,感兴...
9.3/822.4M
超能守护者手游是一款非常经典的沙盒类型的手游,游戏中有着众多不同的人物,超多炫酷的技能和各种时装可以自由的搭配,游戏是多益网络推出的,以经典卡通画风为大家带来刺...
9.4/1,170.8M
放置奇兵手游是一款超好玩的奇幻RPG放置手游,游戏操作简单,内容丰富,放置、战斗、地下城、英雄任务、收集、养成为一体,为你打造一个精彩好玩的魔幻之旅!无限精彩内...
9.2/292.7M
综合型的美化软件,玩机美化,找图作图,美易美化精灵app有丰富的资源内容,壁纸、头像、背景图、心情图等一一俱全,全方位满足大家的需求。功能介绍情侣壁纸、主题壁纸...
8.9/265.9M
公考事业单位题库宝典是一款非常实用的公务员考试学习真题学习软件,用户下载这款软件就能在上面了解到非常全面的考试真题练习服务,app上涵盖的题目类型超级全面,用户...
9.0/361.6M
wps2024专业版人手必备的办公软件,具备常用办公软件的文字、表格、演示等多种功能,并且可以跨设备同步使用,允许多窗口操作,非常的简单使用,设计也很人性化。W...
8.4/1,495.7M
天正电气2017破解版是一款专业的电气工程方面的设计软件,可以用来设计电气工程图,支持建筑电气制图标准,需要的朋友可以来下载!天正电气介绍天正电气TElec以A...
9.1/1,493.1M
南昌智慧人社是南昌省推出的社保查询软件,用户可以查询个人养老、医保、工伤、生育、失业保险信息,了解最新人社政策、招考资讯,需要的朋友可以免费下载使用。南昌智慧人...
7.5/667.9M
雨点数学练习一款针对小学和幼儿园的雨点口算练习软件,通过本工具能够强化孩子的数学学习能力,能够更加容易的学习数学口算,非常的便捷实用,有需要的朋友可以下载试试。...
7.5/566.4M
一款能够帮助用户获得更多优质的短视频带货服务的软件平台,用户在这里能够随时为自己了解更多优质的手机在线带货服务,为大家提供了各种短视频的拍摄服务,为用户随时打造...
9.1/879.7M
广告配音师APP是一款比较实用的工具类软件,因为软件中能为大家提供丰富的配音素材资源,海量语音模板可以选择和使用,如果没有适合你的模板,你还可以自己制作哦。而且...
8.4/1,489.5M
画风很精致的一款东方魔幻类MMORPG游戏,悟空传手游中有着出色技能画面,绚丽打击特效快感连连,游戏中玩法兼容并蓄,剧情轻快诙谐,独创奇缘系统体验神对手敌不过猪...