SDKHotfix(SDK热修复工具包)是一款让SDK开发者能快速赋予SDK热修复的能力.平安行开车赚钱
无兼容问题
实时生效
修复成功率高达99.9%
在用户规模千万级别的app中验证过,可信赖
支持补丁异常自动失效,不用再担心补丁造成crash啦~
在编译阶段插件侵入了产品代码,对运行效率、方法数、包体积还是产生了一些副作用。(可指定某些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.**
展开内容
8.7/1,488.8M
这是一款非常好玩的卡牌策略类手机游戏,在王牌对决LetsDuel游戏中以传统的游戏王的卡牌游戏为玩法,你可以在游戏中收集众多的卡牌,并且选择你喜欢的角色!游戏介...
8.7/1,431.2M
朋友圈励志语录app是一款非常优质的朋友圈文案助手软件,用户下载这款软件就能够了解到非常多优质的短句文案,全部都是非常正能量的,app上涵盖的功能也是非常的丰富...
9.9/1,653.5M
找茬老六是一款趣味找茬闯关游戏,丰富的游戏关卡,每个关卡都有专属的故事情节,玩家需要根据任务提示,找出图中的问题所在即为闯关成功。考验玩家的观察能力和反应能力,...
7.5/741.3M
减肥最主要的就是管住嘴,这是一个根据你身体情况给你安排一日三餐的科学减肥工具。最强的健身减肥饮食规律1、睡前3小时严禁进食!晚上吃进去的糖分会全部转化为脂肪,滞...
7.9/1,313.0M
口袋苍穹首续0.1折无限充这款游戏算得上是玩过的游戏里福利送的比较多的游戏了,登录就送钻石,累计起来一共会送1个亿的钻石呢,加上游戏免费送贵族,里面的道具都是1...
7.7/281.0M
噜米美妆是一款专注于化妆穿搭的变美工具,提供图文视频教程直观展示美妆技巧,内置丰富模板方便用户选择学习,多种实用功能帮助轻松提升个人形象,欢迎下载体验。噜米美妆...
8.7/168.5M
在东莞买了社保的朋友想要查询社保缴纳情况,可以在手机中在这款东莞随身社保app,随时查询社保情况,各定点医疗机构信息,随时随地想查就查,握在手中的随身社保!东莞...
9.5/1,309.5M
热读小说是一款聚焦用户阅读需求的优质阅读软件,众多书迷的阅读首选。它能结合用户的阅读喜好与书籍实时热度,智能推送热门优质小说,无论是经典佳作还是原创新作,都能精...
8.9/1,430.7M
linuxkernel4.11版本正式更新,本次发布的Linux内核4.11版本经历了8个RC版本,可以说是非常的稳定的,各种小bug都修复了,欢迎来下载使用!...
8.7/154.3M
云海之下-治愈系放置RPG手游,整个游戏世界的吉卜力画风,玩起来非常的放松,算是一款治愈感满满的游戏了。职业和幻兽组合,属性克制,打特定BOSS时伤害直接翻倍。...
8.1/90.6M
铜天下(铜行情交易软件),国内最大的铜行情介绍的软件,对最新的铜市场有着敏锐的走势判断,喜欢的人儿可以看看啊!铜天下(铜行情交易软件)功能介绍铜天下,国内第一款...
7.7/1,570.4M
52云装安卓版是一款在线直播装修工地的应用,52云装创始人主张弘扬匠心文化,是一家唯一打造家庭装饰装修的直播软件,装修行业的朋友不要错过。52云装背景介绍:上海...
9.5/1,734.7M
合同如今成了一个热门话题,为了更好的维护自身的权益,无论做什么,我们都得有合同意识。所以我们需要懂得一些必备的合同知识。下面是小编跟大家分享的有关服装租赁合同的...
9.9/1,045.5M
长嘴鸟Ai背诵app,堪称智能背诵领域的领航者,以AI技术为核心驱动力,全方位革新你的背诵体验。它采用全流程引导,一气呵成;依据用户学习习惯与记忆曲线,量身定制...
9.2/1,159.5M
我的许愿钟是一款可以在手机上模拟许愿的游戏,玩法也是非常简单,只需要在屏幕上点击许愿钟就可以许愿啦,全新升级的游戏界面,带给玩家们最真实的游戏体验!我的许愿钟游...
8.0/1,223.7M
《超元气火柴人》是一款非常有趣和充满挑战性的手游,画面精美,玩法丰富多样,而且社交系统也很完善,喜欢的朋友可以来下载体验!超元气火柴人游戏介绍一款休闲挂机游戏,...
9.8/1,966.1M
财神捕鱼app软件京东版是一款能赢京东购物卡的游戏版本,当然除了京东卡,还有话费、现金都可以获取,就看你的捕鱼技术怎么样了,感兴趣的小伙伴快来东坡下载吧!财神捕...
8.6/1,834.4M
给大家介绍一款不错的手机锁屏的软件,这款软件是可以免费的帮助大家赚钱的,那么现在有需要在自己的手机上使用下面的这款软件的朋友就赶快来下载试试吧!点我锁屏app介...
9.1/1,839.3M
这是一个家校互动类型软件,通过这个app家长和老师可以在线互动,查看孩子在学校的情况,老师可以通过这个平台快速布置作业,和家长保持沟通!软件介绍伽信宝贝app是...
8.3/1,486.3M
八哥电影是一款免费无广告无会员的追剧神器,这款软件其实是一个换皮影视app,不过不影响使用,里面有电视剧电影综艺等等,资源很新也很全面,大家可以在这里享受高清播...
7.5/1,595.3M
身边芜湖app是一款芜湖本地生活服务应用,提供丰富的生活服务,本地新闻、在线电视、车票购买、天气查询等等,非常实用,欢迎来下载!身边芜湖app介绍由芜湖广播电视...
9.5/132.0M
译报之星是一款很好用的文字加密工具,有了它用户可以将汉字码与电报码相互转换。还包含了摩尔斯电码转换工具,你能把电报码转换成摩尔斯电码表,非常的好用哦。需要可以来...
7.8/1,358.5M
全新科幻赛博朋克风卡牌,五星斗士随便搭,全游戏中少有的群体控制型的T1英雄一定要全力培养,现在登录就送五十连抽,赶快下载来建立你的未来战队吧。赛博英雄游戏攻略1...
9.1/1,338.4M
软件是一款恋爱交友互动app,在上面你可以查看众多的交友人群,以同城交友为互动方式,私密聊天更加真实,并且自由添加你感兴趣的人!伊讯交友特点1、真实实名的交友互...
9.2/1,742.2M
三界之乱1.5终极破解版是一款为广大魔兽玩家打造的防守型地图,本图支持1-6人同时游戏,本次更新修改已知BUG、修改无尽模式的难度出错等等内容,欢迎下载体验。地...