在编译阶段插件侵入了产品代码,对运行效率、方法数、包体积还是产生了一些副作用。(可指定某些class无需插入方法,减少插桩数)
so和资源的替换目前暂未实现
对于只有字段访问的函数无法直接修复,可通过调用处间接修复
上传GradleTask尚未在MAC环境下测试
上传的补丁支持按包名存档
要商用的小伙伴要注意,建议换成自己的后端接口或自己续费一个bmob应用,因为bmob云函数服务超过40天需要收费,所以本项目需要定期更新应用秘钥。
5分钟即可让你的SDK拥有热修复的能力
节省踩坑和开发成本
hookandcreateGradleTask
Kotlin+groovy
热修复
非对称加密+对称加密
扩展美团Robust开源库,使其具有其他热更库不具备的补丁回滚功能
数据和监控思维
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.**
SDKHotfix(SDK热修复工具包)是一款让SDK开发者能快速赋予SDK热修复的能力.
无兼容问题好省佣金怎么调整
实时生效
修复成功率高达99.9%
在用户规模千万级别的app中验证过,可信赖
支持补丁异常自动失效,不用再担心补丁造成crash啦~
展开内容
9.1/1,129.7M
奇迹来了:MU是一款超级好玩传奇挂机放置类rpg手游大作。游戏有着丰富的玩法内容,加入了新颖的特色元素。你可以选择喜欢战法道三职业进行战斗冒险,细腻的操作,打击...
查看
9.5/667.5M
海尔优水app是一款由海尔官方推出的智能净水器app,为你实时监控全家饮水设备情况,手机即可查询全家用水量,当滤芯到期的时候还能智能提醒,欢迎下载。海尔优水ap...
8.8/1,627.1M
《啵啵鸡物语》剧情很普通,就是主角受不了大城市的工作压力,回老家和偶遇的儿时玩伴一起经营奶茶店。路上遇到的npc可以对话,建议加个好感度系统,不然那些可以选择的...
9.6/528.1M
过年了,你是不是应该给自己的手机上面来一些不一样的界面,模拟烟花的壁纸你觉得怎么样,还是最新的动态的,非常的好看的!2018烟花模拟安卓版玩法一、不同数量的触摸...
8.3/265.6M
美萍干洗店管理系统是一款专业的洗衣店管理软件,它集前台收费收银系统,会员卡管理系统,财务报表系统等强大功能为一身,系统界面简洁优美,操作直观简单。美萍洗衣店管理...
7.6/1,181.0M
微PE工具箱就是款功能十分强大的系统安装软件。它里面不但包括这现在很多好用的工具,而且它还操作起来相当方便快捷,是你系统安装方面的得力助手!微PE工具箱独有特色...
7.7/406.4M
在中秋节的时候是有很多的商品都是需要一些海报的,那么现在小编就给你介绍一些不错的中秋节海报psd免费模板素材给大家,只要你按照上面的去展示就一定会有很不错的反应...
9.2/1,187.5M
校园广告栏app是一款社区宣传应用,校园广告栏app专为大学生设计,避免了大学被各种乱贴广告的行为毒害,同时也为大学生发布信息提供一个平台,为用户生活带来便利,...
8.6/402.1M
建设可信赖的学前教育平台,人民幼教app有丰富的商品资源,提供全面化的学习培训服务,让很多的幼师都能在这里拥有更多的学习收获。人民幼教app介绍人民幼教以“自主...
7.5/357.5M
整人变声器是一个可以进行变声的软件,这款软件支持现场声音录制,可以一键变声,也可以识别本地音频,选择软件提供的各类声音效果来变声,还有一些趣味的变声效果也挺有趣...
9.7/1,299.7M
兆邻社区是一个以品质第一、方便快捷为服务宗旨,以构建智慧社区为最终目标的综合型服务类APP。致力于构建智慧社区的兆邻,将深耕每一个社区,打造闭环生态系统,努力让...
8.7/1,347.4M
小编为你推荐一款类似于贪吃蛇的手机游戏,彩色蠕虫手游,在游戏中玩家滑动屏幕,控制虫子的前进方向,一定要收集相同颜色的圆环和方块,避开其他颜色,操作要迅速,反应灵...
9.6/1,577.6M
很多地区都开发了属于自己的应用软件,今天东坡小编带来的是重庆永川人的生活资讯app——永川生活圈,它能让你更了解永川,它还提供了当地城市的热点新闻资讯、美食以及...
7.5/428.1M
浪讯商城是一款简单好用的购物软件,在这款软件中,主要是进行各种包的购买,无论是各种名牌包还是一些平价包,都可以在软件上进行选购,众多的包包品种都可以进行查验,而...
9.8/1,588.9M
runzombiefooda是一款策略游戏,中文名可以翻译为快跑僵尸的午餐,讲诉饿是幸存的小伙伴打僵尸的故事,玩起来非常的有趣。游戏特色具有白天和黑夜:黑夜僵尸...
9.8/1,996.7M
恋爱线是一款非常有趣的休闲益智类手机游戏,休闲中带一点解迷元素,增加了游戏的趣味性,玩家需要根据场景来画出线条让两个小球碰到一起,一次性画出的线条就能成功的画将...
9.4/926.1M
卡通画风的互动式小说爱情游戏,爱情故事游戏爱的魔力有着丰富的玩法,全新的互动式体验,玩家可以自由设计角色的形象,在选择中做出选择,每一个选择都有不同的结局,体验...
9.0/938.0M
打造年轻人的社交平台,来聊语音app提供了各种玩法,和身边的朋友聊天,有好玩有趣的多人游戏,大家一起玩,加深彼此之间的印象。平台介绍来聊语音app是武汉卧友网络...
8.2/1,323.4M
兄弟快上车小游戏是款小型的赛车游戏,不同的车型带给你独特的趣味性,同时游戏中还能通过挂机模式来获取高额的收益哟。兄弟快上车小游戏内容对各类不同车辆进行改造升级,...
8.0/98.2M
黑月Extend是一款画质好,玩法多样的rpg冒险游戏,还原街机的格斗玩法。在指尖给我们纯粹和感动,在战斗中可以同一个按键连续释放多个技能组合,全靠我们的操作。...
9.8/1,232.1M
作为一款蓝牙防丢器,你可以通过连接防丢器端口设置报警提醒。蓝牙防丢器不论是搭乘交通工具还是远程遥控拍照都可以监控。人们携带手提包、公文包、手机、钱包、书等多种物...
9.3/603.8M
匠谷管家app是一个专业家政服务平台,这里拥有全方位专业家政服务团队,为您提供优质服务,让你的生活更便捷!匠谷管家app功能1、家政管家:帮助你快速找到合适的家...
9.6/755.4M
战旗直播间手机客户端是一款由战旗TV游戏直播平台推出的手机游戏直播软件,他的功能还是十分的不错的,可以在线在手机上面观看主播的直播视频,感兴趣的朋友可以试看哦!...
9.7/1,896.0M
侠玩助手是一个游戏盒子,也是一个应用盒子,里面不仅有各类游戏,手游和h5网页游戏等都有,正版游戏变态游戏也都有,还有很多应用也可以在这里找到。同时这也是一个应用...