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天需要收费,所以本项目需要定期更新应用秘钥。
展开内容
8.6/858.1M
易控安全分享app是易控官方推出的文件分享软件,支持手机电脑网页多段同步操作,为广大网友提供一个便捷实用的文件分享平台,欢迎来下载!易控安全分享app苹果版介绍...
8.5/902.8M
现在电动汽车的补贴额度非常的高,很多用户选择油电混合或者纯电动车,驿充电app为用户自动提示附近的充电地点,不用再到处去寻找充电桩了。驿充电app介绍驿充电ap...
9.2/470.8M
作为一名合格的客服,你必须有条不紊的同时面对多个用户或买家的咨询。如何能快速、准确的回答用户所提出的问题或质疑就是客户必须做到的一环。好用客服聊天助手,让客服真...
7.9/273.1M
少年群英传海量版是一款很好玩的rpg战斗卡牌手游。游戏有着清新脱俗的画面风格,丰富的游戏内容,以武将养成与竞技为核心玩法。通过不断挑战关卡的方式解锁各种武将,让...
8.1/213.3M
初糖语音app里面汇聚了王者荣耀、绝地求生、英雄联盟等各游戏领域大神,能够交友开黑,一键分享生活动态,发现更多精彩,结识更多的好友。初糖语音应用详情初糖语音AP...
7.6/1,417.2M
海运管家是一款服务油品、化工品行业的海上航运专业APP,其基于云计算、航运大数据等基础信息,结合物联网革新技术,探索并实践航运新业态模式,为广大用户打造高效便捷...
8.8/1,499.1M
方旻仓颉输入法是一款多功能汉字输入法,这款输入法带有各种不同的方言,高效的让用户体验不一样的输入法太特性,输入速度快,需要的用户快来下载吧!软件介绍一个多功能和...
10.0/505.8M
B站UP主@保个萝卜自制的最新植物大战僵尸pvz乱斗版手机版+电脑版本,这个版本也是修改了很多植物和僵尸的技能以及外观,玩法还是熟悉的原版玩法,没有广告,自制同...
8.2/332.7M
是一款为车辆打造的智能管理软件,通过这款软件你可以一键进行车辆的定位管理和日程检查管理,同时还可以查看车辆历史行为轨迹等功能,非常实用。安盛车联简介安盛车联是一...
查看
8.4/1,912.4M
学法减分师APP是一款非常好用的学习软件,软件可以帮助用户高效的进行交规学习,并快速赚取积分,软件涵盖了各类交通法规和扣分细则,为用户提供各种驾考学习资料。用户...
9.9/149.1M
百词英语是一款非常优秀的在线学习英语软件,这里为用户提供了海量英语词汇教学视频,可以从小学英语学到考研英语,有需要的朋友们快来东坡下载吧!基本内容一、海量课程:...
8.1/1,062.4M
这是一个佳能通用的扫描仪软件,可以帮助您快速的扫描文本,相片,不管你的是彩色的还是黑色的。可轻松完成佳能各种格式文件输出作业,以其出色的生产率=文件输出全过程作...
7.7/1,878.2M
飞鸽互联查工资条app实际上是蓝思科技下的一款在线社交软件,毕竟有档次的企业,有档次的公司,都会自己弄一个社交软件。飞鸽互联也是如此才应运而生。超丰富的工作模块...
9.0/105.2M
布艺商城是为大家带来的一个手机潮流服饰布料交易平台,各种高品质的品牌布料都可以在这里找到,一些做服装方面的的朋友们都可以来这里进行布料批发。非常的方便,有需要的...
7.9/1,106.4M
视觅通app是一款好用的视频服务软件,用户通过这款软件能去到任何你想去的地方,了解店面,节省时间,为外出提供便捷的服务,需要的朋友欢迎下载!软件介绍视觅通APP...
7.8/186.1M
名咖小说阅读软件一款功能超强大的免费小说阅读器,自动更新,最热小说推荐,多本小说批量下载,界面简洁,高清护眼画质,让你随时随地舒适阅读!应用信息名咖小说阅读是一...
8.8/1,247.0M
通用包文件处理工具不仅仅是个解包打包的角色,内建文件浏览和文件操作能力,支持编写生成脚本实现自动化修改,帮助你快速的打包好文件,有需要的赶紧来下载使用吧。通用文...
8.1/1,381.1M
宝宝趣味学数字游戏是一款集简单、益智、有趣、轻松的亲子教育游戏,在这里宝宝可以从0开始学习数字,并且通过有趣的数字游戏,掌握数字的大小排列顺序,并且通过与实物的...
9.5/800.9M
终极飞行汽车是一款汽车模拟驾驶游戏,你可以操控一辆汽车在道路上奔驰,让你想象不到的是汽车还可以长出翅膀在天空飞驰,很有意思哦。游戏介绍准备好驾驶一种高科技飞行赛...
10.0/1,577.6M
猎魔之约是一款魔幻风格的PK决战类手游,创建新的职业,掌握新的技巧,与小伙伴们一起战斗,感受游戏的快乐!游戏特色1、不断刷新自己的排行榜荣誉,同时还有个性十足的...
8.4/1,327.6M
我们去郊游是一款旅游分享软件,用户把自己的旅行经历发布在平台上,给其他的用户做参考,我们也会根据定位给用户需要的帮助如附近的餐馆、酒店、银行等等,这些都是必备的...
8.0/745.9M
时光小组件app中提供多款桌面小组件工具,还有海量精美的壁纸、图标免费下载使用,自定义更改各种模式,大量的小组件基本满足用户的需求,更好的装饰你的手机桌面。时光...
9.7/1,562.0M
手机同步克隆app是一款可以免费克隆手游数据的软件,但用户需要换新手机且不是同一个品牌的时候,这款软件就能派上用场了,各种文件、照片、视频一键传输,有需要的小伙...
7.8/144.7M
翻转油炸模拟器是一款模拟做菜的手游,在游戏中玩家要掌握煎炸技巧,将各种菜肴做的刚刚好,不能炸焦也不能没做熟,玩起来很有意思,感兴趣的小伙伴快来东坡下载吧!翻转油...